Я должен создать приложение которое берет 2 числа со стороны клиента отправляет их на сервер а затем возвращает их сумму
в основном я думаю,что сделал все правильно,однако программа внезапно перестает работать в bis.readline ();, до этого у меня был сервер и клиент в отдельных классах,однако он застрял в cn.accept (), поэтому при попытке исправить я добрался до этого кода (его в основном внутри действия кнопки "ok", которая должна инициировать соединение с сервером ,также текстовые поля 1 и 2-это поля, где добавляются числа, Если вам интересно, что со всеми system.out.prints, это просто я пытался понять, где код остановился работает.
Что я уже пробовал:
try { ServerSocket sServer = new ServerSocket(2121); Socket cns = new Socket("localhost", 2121); System.out.println(cns.isConnected()); Socket cn = sServer.accept(); System.out.println(cns.isConnected()); String a = textField1.getText(); String b = textField2.getText(); System.out.println("ok"); BufferedReader bis = new BufferedReader(new InputStreamReader(cn.getInputStream())); BufferedOutputStream bos = new BufferedOutputStream(cn.getOutputStream()); BufferedReader bist = new BufferedReader(new InputStreamReader(cns.getInputStream())); BufferedOutputStream bost = new BufferedOutputStream(cns.getOutputStream()); System.out.println("ok"); bost.write(a.getBytes()); bost.write(b.getBytes()); System.out.println("ok"); String req = bis.readLine(); String rew = bis.readLine(); int sekta = Integer.parseInt(req); int sekts = Integer.parseInt(rew); System.out.println("ok"); bos.write(sekta+sekts); String c = bist.readLine(); JOptionPane.showMessageDialog(null, "result is" + c, "result", 300); } catch (IOException ex) { Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex); }
Richard MacCutchan
Вы должны запустить это в отладчике, чтобы точно узнать, что произошло в тот момент, когда программа останавливается.
Member 14566920
ну,я запустил отладчик, поставил несколько точек останова, и код останавливается на строке req = bis.readLine();
может быть, я не знаю, как правильно использовать отладчик?
Richard MacCutchan
Что именно вы подразумеваете под этим, "код останавливается" Помните, что мы не можем видеть ваш экран, поэтому понятия не имеем, в каком состоянии находится ваше приложение. Ждет ли он сообщения, разбился ли он, создал ли исключение и т. д.?
Member 14566920
в основном все выполняется корректно до тех пор,пока bis.readLine() программа просто остается на этом месте, как будто ожидая чтения сообщения, хотя я уже отправил его в bost.write
Richard MacCutchan
Так что он явно не получает ничего для чтения. мы не можем догадаться почему.