Socket 编程中 close() 和 shutdown() 有什么区别

 时间:2024-10-24 00:59:09

一、指代不同

1、shutdown() :是指禁止在一个套接口上进行数据的接收与发送。

2、艘早祓胂close():关闭一个套接口。更确切地说,它释放套接口描述字s,以后对s的访问均以WSAENOTSOCK错误返回。

二、原理不同

1、shutdown() :how参数为0,则该套接口上的后续接收操作将被禁止。这对于低层协议无影响。对于TCP协议,TCP窗口不改变并接收前来的数据(但不确认)直至窗口满。对于UDP协议,接收并排队前来的数据。任何情况下都不会产生ICMP错误包。



2、close():为对套接口的最后一次访问,则相应的名字信息及数据队列都将被释放。closesocket()的语义受SO_LINGER与SO_DONTLINGER选项影响。

Socket 编程中 close() 和 shutdown() 有什么区别

三、特点不同

1、shutdown() :一个应用程序不应依赖于重用一个已被shutdown()禁止的套接口。特别地,一个WINDOWS套接口实现不必支持在这样的套接口上使用connect()调用。

2、close():如无错误发生,则closesocket()返回0。否则的话,返回SOCKET_ERROR错误,应用程序可通过WSAGetLastError()获取相应错误代码。

参考资料来源:百度百科-shutdown()

参考资料来源:百度百科-closesocket()

  • 网易邮箱大师怎么移动文件夹位置
  • 应收股利的账务处理
  • 在用allegro时,如何生成钻孔标志图呢?
  • 办理ce认证需要多少费用?CE认证时间多久?
  • 如何通过mobaXterm连接服务器终端
  • 热门搜索
    澳洲旅游网 东钱湖旅游学校 北京旅游局网站 环球旅游频道 畅游天下旅游同行网 山东泰山旅游 牛背山旅游攻略 河南红色旅游 上海旅游节花车巡游 旅游景点大全介绍