相关帖子没有回答我的问题。

我有一台服务器,其功能类似于:

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,这意味着客户端已断开连接。

08-26 02:11