Я пишу серверную программу с использованием неблокирующего Java SocketChannel.Иногда я хочу отправить ответное сообщение, а затем закрыть канал, как показано в следующем коде.
Однако метод close () прерывает метод write (), я получаю исключение java.nio.channels.ClosedChannelException исообщение не отправлено.
Я могу открыть поток и подождать 1-2 секунды, прежде чем закрыть канал, но я чувствую, что создание другого потока расточительно.
Что является правильнымспособ закрыть SocketChannel, пока есть ожидающие операции?
String msg = "Wrong password!";
channel.write(ByteBuffer.wrap(msg.getBytes()));
channel.close();