请教一个socket编程的问题

对于面向连接的TCP,使用 connect() 连接服务器时,要经过”三次握手“。那么,在服务器端使用 closesocket() 断开连接时,服务器端也要向客户端发送确认信息,对吗?

客户端收到断开连接的信息,也会关闭客户端的socket,释放相关资源,对吗?

希望大神不吝赐教啊

阅读 3.2k
4 个回答

在服务器端使用 closesocket() 断开连接时,服务器端也要向客户端发送确认信息,对吗?是的。第4次挥手完后,服务器会发送ACK给客户端,并进入TIME_WAIT

补充一点,可以先优雅关闭 shutdown(),然后closesocket() ,具体区别楼主可以自行搜索,配合 @lazyp 的TCP状态图来理解 :)

感谢大家的积极回复,已经知道答案了,@lazyp 的回复非常好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进