0

我对 NIO 套接字级编程非常陌生,在这里需要帮助。我的应用程序基于NIO socket它使用Selectors非阻塞通道的位置。

想知道SocketChannel的哪些场景isOpen()isConnected()方法可以返回false

与向套接字写入数据之前一样,我们正在检查上述两种方法。并且间歇性地看到这些方法返回错误。

4

1 回答 1

1

isOpen() 在您关闭它之前返回 true。

如果您已连接或接受通道,isConnected() 将返回 true。

不断测试这些表明您不了解它们的用途。应用程序应该已经知道它自己的连接所处的状态。可能您认为它们指示连接状态,并且当对等方断开连接时它们会发生变化。他们没有。

与向套接字写入数据之前一样,我们正在检查上述两种方法。并且间歇性地看到这些方法返回错误。

我对此表示怀疑。如果您看到这种情况,则说明您的代码中存在错误。

于 2013-10-01T22:28:38.357 回答