网站关键词推广企业,怎么把网站做二维码,建设网站的账务处理,wordpress 评论页面TCP连接断开的时候调用close socket函数#xff0c;已经讨论过有优雅的断开和强制断开#xff0c;那么如何设置断开连接的方式呢#xff1f; 是通过设置socket描述符一个linger结构体属性。 linger结构体数据结构如下#xff1a; struct linger { int l_onoff; int l_linge… TCP连接断开的时候调用close socket函数已经讨论过有优雅的断开和强制断开那么如何设置断开连接的方式呢 是通过设置socket描述符一个linger结构体属性。 linger结构体数据结构如下 struct linger { int l_onoff; int l_linger; }; 有三种组合方式 第一种 l_onoff 0; l_linger忽略 这种方式下就是在closesocket的时候立刻返回底层会将未发送完的数据发送完成后再释放资源也就是优雅的退出. 第二种 l_onoff非零 l_linger 0; 这种方式下在调用close socket的时候同样会立刻返回但不会发送未发送完成的数据而是通过一个REST包强制的关闭socket描述符也就是强制的退出。 第三种 l_onoff非零 l_linger 0 这种方式下在调用close socket的时候不会立刻返回内核会延迟一段时间这个时间就由l_linger得值来决定。如果超时时间到达之前发送完未发送的数据(包括FIN包)并得到另一端的确认close socket会返回正确socket描述符优雅性退出。 否则close socket会直接返回错误值未发送数据丢失socket描述符被强制性退出。 需要注意的时如果socket描述符被设置为非堵塞型则close socket会直接返回值。 转载于:https://www.cnblogs.com/springside4/archive/2010/11/11/2481735.html