我正在尝试使用异步连接实现客户端应用程序。我想知道在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(即使我尝试完成连接)
唯一的解决方案是摆脱这个SocketChannel
并创建一个新的吗?