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