time_wait:
客户端执行close, 发送fin包给服务端,服务端发送ack之后,客户端状态从established->fin-wait-1->fin-wait-2>time_wait, 如果此时服务端不close, 则客户端是time_wait状态,此时如果两个应用程序都关闭,主动close(客户端)的一方还是会等待一段时间。
服务端崩溃后,立马重新启动,listen失败,因为该端口还处于time_wait状态,可以设置so_reuseaddr选项解决。客户端的话,bind成功,connect失败(linux是可以的,windows不可以), 可以通过设置so_linger选项。
阅读(699) | 评论(0) | 转发(0) |