我在其中一个 java 库中看到以下逻辑来测试本地主机上套接字的打开:
ServerSocket socket = new ServerSocket(port);
socket.close();
我的问题是,当没有发送数据包并且套接字在打开后立即关闭时,这个套接字会导致本地主机上的 TIME_WAIT 状态吗?在这种情况下,如果应用程序尝试绑定到同一端口,如果在 2MSL 值内完成,是否会导致“地址已在使用错误”?
我写了一个像上面这样的小测试程序,但是当我在运行这个程序的 linux 机器上 netstat 或 ss 时,我根本看不到这个端口的 TIME_WAIT。即使没有使用套接字发送任何数据包,状态机也不应该应用吗?