【发布时间】:2012-02-10 23:30:47
【问题描述】:
“优雅地”关闭 TCP 套接字的推荐方法是什么?
我了解到,在读取()主机缓冲区中的所有剩余数据之前关闭()可能会导致远程主机出现问题(他可能会丢失已确认的接收缓冲区中的所有数据,但不会尚未被他的应用程序读取)。对吗?
什么是避免这种情况的好方法?有什么方法可以告诉 API 我并不真正关心由于我忽略任何剩余的缓冲数据并关闭套接字而丢失的数据?
或者我是否必须在应用程序协议级别考虑问题并使用某种隐式或显式“传输结束”信号让对方知道关闭套接字以进行读取是安全的?
【问题讨论】:
-
伯克利插座;我正在使用 C,但我对一般概念感兴趣。