【问题标题】:Java: ServerSocket reading data from a clientJava:ServerSocket 从客户端读取数据
【发布时间】:2016-01-08 15:55:13
【问题描述】:

我正在为大学课程开发一个简单的程序。这是我遇到问题的代码:

//everything before this is unrelevant
String message = "";
BufferedReader br  = new BufferedReader(new InputStreamReader(socket.getInputStream()));    
     while((message = br.readLine()) != null) {
         System.out.println(message);
}
//everything after this is irrelevant

我还有一个线程用于接受传入连接和其他一些无关紧要的东西。我遇到的问题是我可以阅读一条消息,之后什么也没有发生。我猜 readLine() 方法是问题所在,但我不确定如何解决它。 它甚至在我们的作业中说要使用

BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

接收数据。

【问题讨论】:

  • 你是否第二次在对方输入信息,让本机显示信息?
  • 什么意思?假设在我的客户端“程序”上我写了 hello,服务器将打印出 hello。我在客户端编写的任何其他内容都不会在服务器端打印出来。
  • 请展示完整的通过socket流发送和接收消息的方法。我们只需要消息发送和接收的相关部分。
  • 尝试telneting 到服务器。您应该能够输入文本行并查看会发生什么。
  • 鉴于我们看不到您的客户端代码,我更可能认为是您的客户端发送的内容不超过一行。

标签: java sockets bufferedreader


【解决方案1】:

您的客户只发送一行。因此,您不需要循环。你应该读一行,然后做你应该做的事情。

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 2020-01-28
    • 2021-09-05
    • 2012-07-08
    相关资源
    最近更新 更多