当前位置:  技术问答>linux和unix

SOCKET 编程之从容关闭套接字如何实现????

    来源: 互联网  发布时间:2016-04-20

    本文导语:  使用setsockopt()函数设置SO_DONTLINGER选项,说的是“某些支持套接字连接的从容关闭”,就是说如果套接字上 面还有数据正在发送或者是接受的话,那么调用了closesoket(),会等到数据真正的发送或者是接受的时候才关闭...

使用setsockopt()函数设置SO_DONTLINGER选项,说的是“某些支持套接字连接的从容关闭”,就是说如果套接字上

面还有数据正在发送或者是接受的话,那么调用了closesoket(),会等到数据真正的发送或者是接受的时候才关闭连

接,释放与套接字相关联的资源!!!!!!!我的问题是,当设置了SO_DONTLINGER选项,然后立即调用了

closesocket()函数,那么,closesocket()是立即返回,等数据发送完成或是接受完成的时候系统自动关闭呢???

还是closesocket()进入阻塞状态,等待数据真正传送结束了,closesocket()才返回,这个时候哦连接已关闭,资源已释放呢???

|
设置了SO_LINGER并设置了零超时间隔,则closesocket()不被阻塞立即执行,不论是否有排队数据未发送或未被确认。这种关闭方式称为 “强制”或“失效”关闭
若设置了SO_LINGER并确定了非零的超时间隔,则closesocket()调用阻塞进程,直到所剩数据发送完毕或超时
若在一个流类套接口上设置了SO_DONTLINGER,则closesocket()调用立即返回,此时系统还将在一段不确定的时间内保留套接口以及其他资源

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关闭socket 失败是什么原因
  • 关闭socket的问题
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • 如何关闭socket
  • close() 怎么关不掉socket? socket应该怎么关闭?
  • ftp服务器socket关闭问题
  • http连接,服务器端关闭socket
  • 连续创建和关闭1024个socket就会出现问题,错误码24,怎么办?
  • 服务器端关闭,客户端select 会一直可读, 读的长度是-1,怎么在不关闭客户端socket下,清除可读
  • 急:如何关闭此socket?
  • socket问题,当客户端关闭或者实际链路断开后服务器端怎么判断?
  • socket关闭后为什么recv不返回
  • linux socket 如何开启和关闭nagle
  • UDP怎么检测对方socket已关闭无法接收数据?
  • socket read阻塞:一个线程关闭另一个线程错误
  • 请教怎样关闭服务器端的socket?
  • 怎样关闭 socket server (客户端正连接时)
  • 并发服务器设计中为啥关闭原来的socket描述符?
  • socket关闭是是否需要从epoll里面移出
  • java命名空间java.net类socket的类成员方法: socket定义及介绍
  • re socket编程中 ACCEPT返回的socket与原socket(他参数中的)端口号一样吗?
  • java命名空间java.nio.channels类socketchannel的类成员方法: socket定义及介绍
  • libevent2需要从socket读一段数据写入一个socket中,同时发送给另一个socket
  • java命名空间java.nio.channels类serversocketchannel的类成员方法: socket定义及介绍
  • vc做的的socket应用和unix下socket?
  • java命名空间java.nio.channels类datagramchannel的类成员方法: socket定义及介绍
  • QSocketDevice ( int socket, Type type )中那个 int socket 是哪里来得?
  • java命名空间java.net类socket的类成员方法: getsendbuffersize定义及介绍
  • socket编程 通过man socket, 没有找到socket函数的第一参数该填什么 怎样利用man手册
  • java命名空间java.net类socket的类成员方法: getreceivebuffersize定义及介绍
  • 线程间可否通过管道传递SOCKET句柄?还有其他方式传递SOCKET么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3