は、これはかなり基本的な質問ですが、私はどこにもそれのために決定的な答えを見つけることができません:それを私accept()のServerSocketChannelからの接続は、私が返されたSocketChannelが「connected」であることを保証していた場合ServerSocketChannel.accept()によって返されるSocketChannelは確実に接続されていますか?
、または可能性返されたチャンネルがまだ何らかの形でハンドシェイクなどを実行していて、後でそのSelectionKey.OP_CONNECT
ビットを設定することになりますか?言い換えれば
は、私ががする決して印刷false
次のコードというを保証していますか?
ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
serverSocketChannel.socket().bind(new InetSocketAddress(1234));
SocketChannel socketChannel = serverSocketChannel.accept();
System.out.println(socketChannel.isConnected());
_このチャネルが非ブロックモードの場合、保留中の接続がない場合、このメソッドはすぐにnullを返します。それ以外の場合**新しい接続**が利用可能になるか、I/Oエラーが発生するまで無期限にブロックされます._は接続されることを示しています。 –
@SotiriosDelimanolis「見える」とはまさに問題です! ;)完全に "接続"される前に、接続はすでに "利用可能"とみなされている可能性があります。たぶん...私には分かりません...私は彼らがこのことについてより明確であることを望みます... –