程序运行时查看,结果是这样子的
C:UsersAdministrator>netstat -ano|findstr 8855 TCP 192.168.9.195:3496 192.168.9.230:8855 TIME_WAIT 0 TCP 192.168.9.195:3499 192.168.9.230:8855 TIME_WAIT 0 TCP 192.168.9.195:3501 192.168.9.230:8855 TIME_WAIT 0 TCP 192.168.9.195:3502 192.168.9.230:8855 TIME_WAIT 0 TCP 192.168.9.195:3505 192.168.9.230:8855 TIME_WAIT 0 TCP 192.168.9.195:3506 192.168.9.230:8855 ESTABLISHED 992
最后一列是PID,俺们的程序是使用的8855断开。倒数第二列是socket状态。
PID是正确,则为正在使用的socket,上面列表中这个socket已经建立连接。
PID为0,表示这个socket已经在程序中关闭了,其实可以理解为部分用过的socket,但是系统还没有把资源收回。等到程序退出以后,这些socket会被回收。
貌似已经连接的socket如果程序退出时没关闭,则会在超时以后被系统回收(不确定)。
在Linux中也可以这么看,但Linux有更好的办法。
原创文章,转载请注明来源。