gpt4 book ai didi

java - 无法从套接字读取捕获 -1 响应

转载 作者:行者123 更新时间:2023-12-01 09:29:47 24 4
gpt4 key购买 nike

我有一个充当客户端线程的类。在类中,我有一个 run 方法,用于处理套接字的读写操作。我的运行方法如下所示:

public void run(){
System.out.println("New connection at " + new Date() + "\n");
try {
DataInputStream in = new DataInputStream (threadSocket.getInputStream());
out = new DataOutputStream (threadSocket.getOutputStream());
while (running){
// read input from client
byte[] input = new byte [200];
int count = in.read(input);
if (count == -1) {
running = false;
break;
}

String msg = new String(input, 0, count);

// parse in going message
messageParsing(msg);

// respond to client
response();
}
}
catch (IOException ex) {ex.printStackTrace();}
finally {
try {
threadSocket.close();
System.out.println("Connection closed.\n");
} catch (IOException ex) {ex.printStackTrace();}
}
}

我创建了一个固定大小的字节数组,并且正在将数据从套接字读入其中。输入数据的可用长度为147和61,如果输入数据的长度为0则没有任何意义。我想在计数为-1时关闭套接字,但我没有成功。似乎当没有数据时,计数为 0,它只是不断尝试从套接字读取数据,然后卡住了。

我该如何解决这个问题?我究竟做错了什么?任何帮助,将不胜感激。

最佳答案

当另一方通信方实际关闭其输出时,流只能返回-1,即发出结束信号,以保证不再传输任何数据。

关于java - 无法从套接字读取捕获 -1 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39531882/

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