gpt4 book ai didi

linux - 服务器崩溃或者只是调用 `shutdown(fd, SHUT_WR)` ?

转载 作者:太空宇宙 更新时间:2023-11-04 05:41:38 25 4
gpt4 key购买 nike

当服务器崩溃或只是调用shutdown(fd, SHUT_WR)时,客户端所有read()都返回0

如何区分?

如果您能帮助我,我将不胜感激。

最佳答案

对等点区分其他对等点崩溃与故意关闭连接的唯一可靠方法是通信协议(protocol)是否为此目的定义了告别消息。

如果可能,每个对等方在有意关闭其连接端时都应发送协议(protocol)定义的再见消息。如果一个对等点检测到连接已关闭/丢失并且事先未收到此类消息,则它可以假设另一个对等点崩溃并采取相应措施(即客户端可以使用新套接字重新连接等)。

当进程终止时,操作系统将关闭该进程仍然打开的所有事件连接。但是,幸存的对等点是否会收到“正常”关闭通知或“异常”套接字错误很大程度上是由各自的网络堆栈实现定义的。这就是为什么,如果区分很重要,不要仅仅依赖于检测到的连接关闭的类型。让您的同事明确表示他们想要关闭连接的意图。

关于linux - 服务器崩溃或者只是调用 `shutdown(fd, SHUT_WR)` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com