Вы можете использовать SocketChannel
и configureBlocking(false)
. Если у вас более одного неблокирующего канала ввода-вывода и вы собираетесь использовать их все из одного потока, вы, вероятно, найдете Selector
очень полезным.
Обратите внимание, что обычно проще и менее подвержено ошибкам использование блокирующих сокетов и использование нескольких потоков, чтобы приложение продолжало выполнять полезную работу, пока оно заблокировано, ожидая завершения ввода-вывода.