我想確定端口是否打開。爲什麼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 2014-10-19 12:20:00
我認爲執行此代碼時會返回1,因爲寫入通道已準備就緒,但它返回0,所以我很困惑。@ RenniePet – firebroo 2014-10-19 12:30:40
爲什麼其他答案被刪除? – firebroo 2014-10-19 23:13:45