我在java中使用我的客户端/服务器程序时出现问题。我能够从我的客户端与我的服务器进行通信,但是当我从服务器向客户端广播时,它无法正常工作。 我的程序中有一部分不起作用: 服务器:
while (true) {
Socket socket = server.accept();
out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write("Welcome to the server !");
out.flush();
}
客户端(作为线程运行):
while(true){
try {
//s is the socket I get from the connection to the server
in = new BufferedReader (new InputStreamReader (s.getInputStream()));
String msg = in.readLine();
System.out.println(msg);
} catch (IOException ex) {
}
}
当我使用我的客户端程序时,我没有收到服务器发送的消息。但是,当我在终端上使用netcat在服务器上建立连接时,我收到了消息。我不明白。感谢
答案 0 :(得分:0)
客户希望发送完整的一行:
String msg = in.readLine();
只有在找到行终止符或流被关闭时,才能确定该行是否完整。但服务器不发送任何EOL字符,也不会关闭流。所以客户端一直在等待线路完成。