TCP四次挥手

tcp四次挥手:
fin(finish)完成,结束 断开连接请求
ack:应答


socket:同时可以收,发.叫做全双工 套接字是双向的
半双工:酒店的对讲机(别人说的时候你不能说) 只能在同一时刻进行发或者收操作
单工:收音机,话筒,只能有一个

可以理解为以下对话:

男(客户端):我们分手吧
女(服务器):额...
女:我们分手吧
男:好的

建议客户端首先主动关闭(当然也可以服务器先关闭)

 

报错:address in use 地址正在被使用 ----> TCP服务器存在的问题,一旦运行之后,主动终止之后,关闭socket
第四步:一定要客户端发给服务器

最后一次ack由于没有确认,必须保证这次最后一次ack顺利到达,所以有了2msl时间.

导致服务器重启,立刻bind端口就会失败
解决:重用地和端口 就可以重新进行立即绑定
如何重用:

# set socket option 选项级别:socket, 设置 reuseaddr 选项为1 表示设置有效
server_socket.setsocketopt(SQL_SOCKET,SO_REUSEADDR,1)

2MSL时间:tcp标准规定,主动断开连接的一方需要等待2msl时间才能释放原来使用的端口

posted @ 2019-12-25 17:13  砚台是黑的  阅读(258)  评论(0编辑  收藏  举报