删除无响应的频道 - java
Delete Unresponsive channels - java
我的问题是如何从 selector 中删除在给定时间内没有响应的主机。
假设,我在 select 或 OP_CONNECT 中注册了 1 个频道。通道处于非阻塞模式。我添加的主机我知道它没有响应,所以我的程序无法连接,并且 selector 的 select() 方法将始终 return 0。现在,我怎么能使用 select(超时)并删除没有响应的主机?
主机ping输出:
25 packets transmitted, 0 received, 100% packet loss, time 24000ms
关闭相关频道即可。这将自动取消他们所有的 SelectionKeys
并将他们从相关 Selector(s)
的权限中移除。
但是我个人看不出 NIO 或客户端非阻塞模式的意义。
我的问题是如何从 selector 中删除在给定时间内没有响应的主机。
假设,我在 select 或 OP_CONNECT 中注册了 1 个频道。通道处于非阻塞模式。我添加的主机我知道它没有响应,所以我的程序无法连接,并且 selector 的 select() 方法将始终 return 0。现在,我怎么能使用 select(超时)并删除没有响应的主机?
主机ping输出:
25 packets transmitted, 0 received, 100% packet loss, time 24000ms
关闭相关频道即可。这将自动取消他们所有的 SelectionKeys
并将他们从相关 Selector(s)
的权限中移除。
但是我个人看不出 NIO 或客户端非阻塞模式的意义。