Я хочу определить порт открытым.Почему selector.select() всегда возвращается 0
InetSocketAddress address = new InetSocketAddress("www.google.com", 80);
Selector selector = Selector.open();
SocketChannel socketChannel = SocketChannel.open();
socketChannel.configureBlocking(false);
socketChannel.connect(address);
socketChannel.register(selector, SelectionKey.OP_WRITE);
int result = selector.select();
System.out.println(result);
Если порт не открыт, думаю, я смотрю таки вернуть 0, но когда порт открыт, он также вернет 0, я ожидаю, что это может вернуть 1.
Не знаю ничего об этом, но может быть, потому что вы указали configureBlocking (false) - означает ли это, что операция асинхронна и вы не знаете, когда она закончится? – RenniePet
Я думаю, что это будет возврат 1 при выполнении этого кода, потому что канал записи готов. Но он возвращает 0, поэтому я настолько смущен. @ RenniePet – firebroo
почему другой ответ был удален? – firebroo