SocketChannel.isConnected()是否实际确定连接状态?

时间:2018-09-06 15:24:02

标签: java sockets networking channel socketchannel

让我们假设以下情况:

  1. 我们获得了连接,并为某个远程服务器“ A”创建了SocketChannelSocketChannel ch = ...

  2. 我们默默地停止了“ A”上的所有联网(例如,如果重要,则调用类似tc qdisc add dev eth0 root netem loss 100%之类的东西)

    问题是:根据规范,

  3. 的结果应该是什么?

ch.isConnected()

在我看来,尽管其基本物理通道已完全断开,但一旦连接并没有关闭,它便保持“连接”状态(即答案为true值)。我对吗?如果我是对的,有什么好方法可以在不重新创建通道的情况下进行正确的连接测试?

P.S。在我的测试中,我确实获得了true的价值,但是我想确保那里没有愚蠢的错误,因此我想依靠规范而不是凭经验。

0 个答案:

没有答案