探测断链

探测断链
因为Indy天然是阻塞的而且它的事件只与状态相关,没有事件去提示一次提早的中断连接。 当一次过早断链发生时,如果一个读或写调用正在进行,一个异常就会被引发并能被捕捉。 如果没有进行中的读或写调用,就不会引发异常直到下一次读或写调用。
的确有一个 OnDisconnected 事件,然而这并不是你想的那样。OnDisconnected 事件只有在 Disconnect 方法被调用后才会触发。这不是一个告诉你过早断链事件的事件。

许多程序员立刻质疑这个事实,争辩说他们需要在发生断链时立刻得知。你可能听过这句话: 如果一棵树在森林中倒下了,当时并没有人在场并听到,那它发出了声音了吗?所以, 如果一个 socket 断链了,并且它并不是正在存取中,它是否关闭了真的重要吗?大部分情 况下,回答是不重要。

原文地址:https://www.cnblogs.com/hnxxcxg/p/5652318.html