Я пытаюсь написать программу, которая одновременно является TCP-клиентом и TCP-сервером для передачи сообщений через распределенную сеть.После того, как я смог соединить несколько экземпляров этих программ вместе, я обнаружил, что не могу читать из сокетов.Я упростил реализацию и все еще имею ту же проблему.
Упрощенный код выглядит следующим образом:
public class Server {
public static void main(String[] args){
try {
ServerSocket ssocket = new ServerSocket(1234);
Socket socket = new Socket("localhost", 1234);
socket = ssocket.accept();
String data = "Hello World";
PrintWriter out;
out = new PrintWriter(socket.getOutputStream(), true);
System.out.print("Sending string: '" + data + "'\n");
out.print(data);
out.flush();
BufferedReader in = new BufferedReader(new
InputStreamReader(((Socket) socket).getInputStream()));
System.out.print("Received string: '");
while (!in.ready()) {}
System.out.println(in.readLine());
System.out.print("'\n...");
in.close();
} catch (UnknownHostException e2) {
e2.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
При запуске кода я получаю следующий вывод:
Sending string: 'Hello World'
Received string: '
Почему я не могу прочитать поток ввода?