设为首页 加入收藏

TOP

套接口库函数参考(八)
2010-12-30 21:03:01 】 浏览:80338
Tags:接口 函数 参考
O_LINGER
SO_DONTLINGER选项影响,对比如下:

 

选项        间隔    关闭方式    等待关闭与否

SO_DONTLINGER   不关心  优雅       

SO_LINGER     强制       

SO_LINGER   非零    优雅       

 

  若设置了SO_LINGER(亦即linger结构中的l_onoff域设为非零,参见2.44.1.74.1.21各节),并设置了零超时间隔,则closesocket()不被阻塞立即执行,不论是否有排队数据未发送或未被确认。这种关闭方式称为“强制”或“失效”关闭,因为套接口的虚电路立即被复位,且丢失了未发送的数据。在远端的recv()调用将以WSAECONNRESET出错。

  若设置了SO_LINGER并确定了非零的超时间隔,则closesocket()调用阻塞进程,直到所剩数据发送完毕或超时。这种关闭称为“优雅的”关闭。请注意如果套接口置为非阻塞且SO_LINGER设为非零超时,则closesocket()调用将以WSAEWOULDBLOCK错误返回。

  若在一个流类套接口上设置了SO_DONTLINGER(也就是说将linger结构的l_onoff域设为零;参见2.44.1.74.1.21节),则closesocket()调用立即返回。但是,如果可能,排队的数据将在套接口关闭前发送。请注意,在这种情况下WINDOWS套接口实现将在一段不确定的时间内保留套接口以及其他资源,这对于想用所以套接口的应用程序来说有一定影响。

 

返回值:

  如无错误发生,则closesocket()返回0

首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/129/129
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇网络基础知识讲座之一:理解IPv4.. 下一篇Windows Sockets 2扩展库函数简要..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目