Java中的客户机-服务器断开连接
相关帖子没有回答我的问题
我有一个服务器,它可以执行以下操作:
EVERY TWO SECONDS DO:
if the inputstream is not null {
if inputStream.available() is 0
{
return
}
print "handling input stream"
handleTheInputStream();
}
即使在我的客户端断开连接后,服务器也无法通过IOException识别它。另一篇帖子说我会看到一个流结束的角色。然而,事实并非如此,因为在我的客户端断开连接后,我从未看到“处理输入流”,这表明没有可用的数据
也许我目前理解这一点的方式有问题
请帮忙
# 1 楼答案
如果这是使用套接字完成的,则可能需要检查Socket类的各种实例方法,例如isClosed()或isInputShutdown()
当然,这假设在此流上操作的方法可以访问套接字对象,而不仅仅是InputStream
# 2 楼答案
不要使用
available()
-这表示当前是否有可用的数据,而不是将来是否有可用的数据。换句话说,它是用于检测断开连接的错误工具基本上,您应该调用
read()
(并处理数据),直到它返回-1,此时表示客户端已断开连接