即時通訊嘗試使用異步連接實現客戶端應用程序。我想知道如果我可以重新使用一個SocketChannel
對象後,它無法連接到服務器。重複使用套接字通道
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false);
InetSocketAddress addr = new InetSocketAddress(host, port);
SelectionKey key = channel.register(select, SelectionKey.OP_READ, connection);
channel.connect(addr);
這是選擇循環後,我的套接字最終被選中,因爲連接失敗。我想排隊在該頻道的另一個連接嘗試,並且我似乎沒有做任何事情。 channel.isConnectionPending()
方法總是返回true(即使我嘗試finishConnect)
是唯一的解決方案擺脫這種SocketChannel
並創建一個新的?
是的,似乎一旦狀態達到懸而未決,就沒有任何聲明讓它回到未連接狀態。 – aepurniet 2009-11-12 01:34:34