我已经与 DatagramChannel有些疑惑。当套接字被绑定并且接收方法在后台以阻塞模式运行时,我刚刚做了一个拔掉电缆的快速测试。即使我写入这个套接字,也没有抛出异常。
再次插入电缆后,一切都看起来很好 - 插座仍然绑定。
试验后提出了一些问题:
1)如果有必要重新绑定插座? (一些系统或网络事件的场景)
2)网络不可达时会抛出异常吗? (当我写这是不可达接口开往插座,将包中的高速缓存缓冲和等待界面将上升)
3)当套接字通道可通过系统关闭?处理不寻常的网络事件
在此先感谢。你是否知道任何与这类话题有关的书(低级细节)?
一旦你打开一个连接,我相信它保持打开,直到你自己关闭它,尽管有一个断开的电缆。路由器可能会尝试重新发送它几次,但它可能只是丢弃数据包。 – aglassman
@aglassman如果电缆在机器上拔出,则不会有路由器,只有IP堆栈。 – hexafraction