内容: 当有一个TCP连接,你要判断是长连接还是刚建立的连接时,可以查看他的建立时间得知
步骤一:查看需要的TCP连接,获取端口号
netstat -nap | grep "a.out"
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:55555 0.0.0.0:* LISTEN 3717/./a.out
tcp 0 0 127.0.0.1:55555 127.0.0.1:47248 ESTABLISHED 3717/./a.out
这里得到的端口号是:55555
步骤二:根据端口号找到此连接对应的fd在进程空间中的值和进程pid
luzejia@ubuntu:~$ lsof -i:55555
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
a.out 3717 luzejia 3u IPv4 63923 0t0 TCP *:55555 (LISTEN)
a.out 3717 luzejia 4u IPv4 63924 0t0 TCP localhost:55555->localhost:47248 (ESTABLISHED)
可以看到处于ESTABLESHED的那条连接的fd值是4,pid是3717
步骤三:根据fd值和进程pid查看TCP连接建立时间
luzejia@ubuntu:~$ ls -l /proc/3717/fd/4
lrwx------ 1 luzejia luzejia 64 May 28 19:58 /proc/3717/fd/4 -> 'socket:[63924]'
可以看到建立时间是:May 28 19:58