带有Socket的Java Communication Server客户端

时间:2015-03-28 17:29:57

标签: java sockets client-server server

我在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在服务器上建立连接时,我收到了消息。我不明白。感谢

1 个答案:

答案 0 :(得分:0)

客户希望发送完整的一行:

String msg = in.readLine();

只有在找到行终止符或流被关闭时,才能确定该行是否完整。但服务器不发送任何EOL字符,也不会关闭流。所以客户端一直在等待线路完成。