isConnected和isClosed之间的区别

rub*_*buc 2 java sockets

我会假设调用isConnected()套接字会告诉我是否连接到另一端.

返回:如果套接字成功连接到服务器,则返回true

但经过检查然后调用flush()我得到的套接字

java.net.SocketException:管道损坏

怎么isConnected比不同isClosed,什么是每一个真正的行为?

如何在不向流写入任何内容或创建新连接的情况下正式关闭另一方?还有办法吗?

use*_*421 7

我会假设调用isConnected()套接字会告诉我是否连接到另一端.

错误.它会告诉你是否曾经连接到此插座上.它没有告诉您连接的状态.

返回:如果套接字成功连接到服务器,则返回true

请注意,它没有说'当前已连接'到服务器.

如何isConnected不同于isClosed,什么是每一个真正的行为?

双方真正的行为是,他们告诉你,你已经做的插座,不连接的状态是什么.

如何在不向流写入任何内容或创建新连接的情况下正式关闭另一方?还有办法吗?

不,没有.如果对等方正常关闭,则读取将返回EOS指示(对于任何其他XXX抛出,read()返回-1,readLine()返回null ).写入将根据您的平台抛出"连接重置"或"损坏的管道".TCP不支持"拨号音"性质的任何内容,因此如果没有挂起的写入,则没有当前的连接状态可供查询.readXXX()EOFExceptionIOException