作为背景,我有一个嵌入式设备,可以通过 IP 与第三方服务器通信。第三方服务器中的代码不太可能更改。在最近的一个版本中,我将 ip disconnect 函数更改为在调用 close() 之前调用 shutdown()(之前它只是调用了 close())。如果发生某些中断,嵌入式设备会在未完成通信会话的情况下断开连接。当这种情况发生在会话中的错误点时,服务器现在正在生成一个跟踪文件,由于各种原因,该文件对客户来说是不可接受的。这仅在调用 shutdown 时发生,服务器将此视为发送失败错误(并生成跟踪文件),而将更突然的 close() 视为不需要跟踪的另一端断开连接错误。
所以显而易见的解决方案是停止调用关机。Barnes 先生在这个问题中的回答很好地描述了这两个功能,但是,如果您知道只有一个进程连接到特定套接字,那么有什么理由在关闭之前使用关闭?
谢谢,帕特里克