java Socket TIME WAIT
什么是 TIME WAIT 状态?服务端( Server )与客户端( Client )建立 TCP 连接之后,主动关闭连接的一方就会进入 TIME WAIT 状态 。 例如,客户端主动关闭连接时,会发送最后一个 ACK ,然后客户端就会进入 TIME WAIT 状态,再“停留若干时间’,然后进入 CLOSED状态 。 在 Linux 操作系统中,当在“停留若干时间”段时,应用程序是可以复用呈 TIMEWAIT 状态的端口的,这样可提升端口利用率
在 java中的 socket 编程中,可以通过 setReuseAddress (boolean)
进行端口复用
public void setReuseAddress (boolean on)方法的作用是启用 /禁用 SO_REUSEADDR 套接字选项 。 关闭 TCP 连 接 时 ,该连接可能在关闭后 的 一段 时间内 保持超 时状态 (通常称为TIME_ WAIT 状态或 2MSL 等待状态)