我試圖連接到遠程服務器,並在我的線程發送登錄消息:的Java NIO連接到插座
@Override
public void run() {
try {
address = new InetSocketAddress(host, port);
incomingMessageSelector = Selector.open();
socketChannel = SocketChannel.open();
socketChannel.configureBlocking(false);
socketChannel.connect(address);
socketChannel.register(incomingMessageSelector, SelectionKey.OP_READ);
serverManager.loginToServer();
}
}
的登錄服務器()是將消息發送到服務器療法,但我的方法繼續收到:
java.nio.channels.NotYetConnectedException
如何在發送此loginServer()方法之前檢查並等待連接?
我建議你最初實施使用阻塞NIO。它更簡單,可以做你想做的事。注意:在NIO中,默認行爲是阻止的。 –