卡在getInputStream方法中

时间:2013-07-11 19:25:06

标签: java

我正在用java编写客户端程序。服务器是用C ++编写的。当我发送消息时 客户端到服务器没问题。但在接收我的客户端线程时,卡在此调用中

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

当我断开连接时,所有收到的数据都会打印出来。我从这个场景中得到的是getInputStream()没有获得终止字符(我不知道它应该是什么),就像它的空字符一样。所以请告诉我,我应该在服务器端的消息末尾添加什么来恢复此问题。

1 个答案:

答案 0 :(得分:7)

您应该使用:

in = new InputStreamReader(socket.getInputStream());

而不是:

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

BufferedReader通常用于非网络IO(例如文件IO)和纯文本,其中行以换行符结束。如果你正在处理网络和二进制数据(你似乎也这样做),你应该使用普通的InputStreamReader你也可以使用一些DataInputStream或类似的东西来简化阅读:)