Jis*_*mud 0 java sockets inputstream outputstream stream
InputStream,OutputStream和Socket),那么如何通知另一端断开连接?有一种我知道的方法 - 尝试从中读取InputStream,这会抛出IOExceptionif连接关闭,但还有其他方法可以检测到这种情况吗?inputStream.available()
并没有解决这个问题.这是为什么?附加信息:我要求采用另一种方式,因为如果我必须尝试读取InputStrem断开连接,我的项目将变得难以处理
.
尝试从InputStream读取,抛出IOException
这是不正确的.如果对等关闭套接字:
read() 返回-1readLine() 返回nullreadXXX()抛出EOFException,对于任何其他X.由于InputStream只有read()方法,它只返回-1:它不会抛出IOExceptionEOS.
与此处的其他答案相反,没有TCP API或Socket方法可以告诉您对等方是否已关闭连接.你必须尝试读或写.
您应该使用读取超时.
InputStream.available()没有解决问题,因为它没有返回任何类型的EOS指示.几乎没有正确的用途,这不是其中之一.
| 归档时间: |
|
| 查看次数: |
10247 次 |
| 最近记录: |