相关帖子没有回答我的问题。
我有一台服务器,其功能类似于:
EVERY TWO SECONDS DO:
if the inputstream is not null {
if inputStream.available() is 0
{
return
}
print "handling input stream"
handleTheInputStream();
}
即使客户端断开连接,服务器也无法通过IOException识别它。另一则帖子说,我会看到一个流结束字符。但是,事实并非如此,因为在客户端断开连接后,我再也看不到“处理输入流”,这表明没有可用数据。
我目前了解其工作方式的方式也许有问题。
请帮忙。
最佳答案
不要使用available()
-表示当前是否有可用数据,而不是将来是否有可用数据。换句话说,它是用于检测断开连接的错误工具。
基本上,您应该调用read()
(并处理数据),直到它返回-1,这意味着客户端已断开连接。