gpt4 book ai didi

java - 陷入 getInputStream 方法中

转载 作者:行者123 更新时间:2023-12-01 07:30:56 26 4
gpt4 key购买 nike

我正在用java编写一个客户端程序。服务器是用C++编写的。当我从以下位置发送消息时客户端到服务器就可以了。但是在接收过程中我的客户端线程陷入了这个调用

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

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

最佳答案

您应该使用:

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

而不是:

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

BufferedReader 通常准备用于非网络 IO(例如文件 IO)和以换行符结尾的纯文本。如果您正在使用网络和二进制数据(看起来您确实这样做),您应该只使用普通的 InputStreamReader 您也可以使用一些 DataInputStream 或类似的东西来使阅读更容易: )

关于java - 陷入 getInputStream 方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17601714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com