在Linux上,是否有一种方法可以在进程进入TIME_WAIT状态之前确定它使用的是什么端口。
当我使用netstat -tnp时,我只看到两个端点,但没有进程信息。
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:38805 127.0.0.1:111 TIME_WAIT -
如果我通过调用以下命令打开和关闭套接字
Socket s = new Socket( ... );
s.setReuseAddress(true);
in = s.getInputStream();
...
in.close();
s.close();
Linux声明此套接字仍处于打开状态,或者至少存在连接的文件描述符。当通过lsof查询该进程的打开文件时,有一个关闭连接的条目:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
java 9268 user 5u sock 0,4