я пытаюсь реализовать клиентское приложение с асинхронным соединением. я хочу знать, могу ли я повторно использовать объект 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()
метод всегда возвращает истину (даже если я пытаюсь завершить соединение)
это единственное решение, избавиться от этого SocketChannel
и создать новое?