参考自: https://blog.csdn.net/yusiguyuan/article/details/21445883
https://blog.csdn.net/codercong/article/details/52065134
作用:
1.保证双方正常种植数据流传输[最后一个ACK丢失了,被动关闭一方会重发它的FIN,主动关闭一方必须维持一个有效状态信息(TIMEWAIT状态下维持),以便能够重发ACK,否则被动一方会认为有错误产生]
2.保证在下一个人使用的IP地址与端口与先前的完全相同的情况下,上一个残留的数据包,不会被下一个人接收到(time_wait持续等待时间为2msl,确保数据丢失成功)。
问题(过多的TIME_WAIT会导致端口被占用):
使用socket.setsockopt() #SO_REUSEADDR 代开或关闭地址复用功能
【一般情况下,不用考虑这个TIME_WAIT,因为它的存在就是友好的】