0

我在其中一个 java 库中看到以下逻辑来测试本地主机上套接字的打开:

 ServerSocket socket = new ServerSocket(port);
 socket.close();

我的问题是,当没有发送数据包并且套接字在打开后立即关闭时,这个套接字会导致本地主机上的 TIME_WAIT 状态吗?在这种情况下,如果应用程序尝试绑定到同一端口,如果在 2MSL 值内完成,是否会导致“地址已在使用错误”?

我写了一个像上面这样的小测试程序,但是当我在运行这个程序的 linux 机器上 netstat 或 ss 时,我根本看不到这个端口的 TIME_WAIT。即使没有使用套接字发送任何数据包,状态机也不应该应用吗?

4

1 回答 1

1

TIME_WAIT 是连接中的一个状态。您尚未创建连接,因此您永远不会达到 TIME_WAIT

于 2016-10-18T11:06:12.477 回答