2013-10-01 44 views
0

我對NIO套接字級編程很新,需要幫助這裏。我的應用程序基於NIO socket,它使用Selectors作爲非阻塞通道。的Java NIO的SocketChannel ISOPEN和isConnected方法

想知道在哪種場景下isOpen()isConnected()方法的SocketChannel可以返回false

將數據寫入到插座之前,我們正在檢查上述兩種方法。並間斷地看到這些方法返回false。直到關閉它

+0

對於給定的連接,它們不應該是間歇性的。我建議你再次閱讀這些方法的javadoc;) –

回答

0

ISOPEN()返回true。如果連接或接受信道

isConnected()返回真。

測試這些不斷表明您不明白它們是什麼。應用程序應該已經知道它已經建立了自己的連接。可能你認爲它們表示連接的狀態,,並且它們在對端斷開連接時發生改變。他們不。

在將數據寫入套接字之前,我們正在檢查上述兩種方法。並間斷地看到這些方法返回false。

我對此表示懷疑。如果你看到這個,你的代碼中有bug。