删除无响应的频道 - java



我的问题是如何从选择器中删除在给定时间内没有响应的主机。

假设我在选择器中注册了 1 个通道以供OP_CONNECT使用。通道处于非阻塞模式。我添加的主机我知道它没有响应,所以我的程序无法连接,选择器的 select() 方法将始终返回 0。现在,我如何使用选择(超时)并删除未响应的主机?

主机的 ping 输出:

25 packets transmitted, 0 received, 100% packet loss, time 24000ms

只需关闭相关频道即可。这将自动取消其所有SelectionKeys,并将其从有关Selector(s)的职权范围中删除。

但是,我个人看不到NIO或非阻塞模式对客户的意义。

最新更新