【问题标题】:Java Communication Server Client with Socket带有套接字的 Java 通信服务器客户端
【发布时间】:2015-06-01 22:31:27
【问题描述】:

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

【问题讨论】:

  • 请注意,'readLine()' 在读取一行时返回...
  • 广播?广播在哪里?

标签: java sockets client-server server


【解决方案1】:

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

String msg = in.readLine();

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

【讨论】:

  • 谢谢!我改变了,但仍然没有工作。但是我发现了问题,我有一个循环,它不是一个正在寻找要发送到我的服务器的东西的线程。无论如何感谢您的快速响应!
猜你喜欢
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 2012-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
相关资源
最近更新 更多