引自:http://blog.csdn.net/churujianghu/article/details/7211440 在網絡程序的調試過程中,經常發(fā)生一些出乎意料的事情,比如創(chuàng)建一個TCP服務失敗,這時候往往需要查看系統(tǒng)的網絡情況,最常用的網絡抓包當然非WireShark模式。但往往很多時候只需要查看某個端口的使用情況,它到底被那個進程(對應PID)占用了,或者你還需要把它Kill掉。如果你在Windows操作系統(tǒng),你可以使用netstat命令來查詢PID,然后可以打開任務管理器,查看這個PID對應的進程名;如果PID沒有顯示,菜單》查看》選擇列》選中PID即可;得知進程后,我們可以將進程殺掉。下面我簡單描述一下我所了解的在Windows和Linux系統(tǒng)下處理方式。 (假如我們需要確定誰占用了我們的9010端口)
1、Windows平臺
你看到是PID為3017的進程占用了9010端口,如果進一步你想知道它的進程名稱,你可以使用如下命令: tasklist | findstr "3017"
如果你想殺死這個進程,你當然可以用前面描述的那種方法,在任務管理器里把它KILL了,但如果你喜歡高效一點,那么用taskkill命令就可以了。 taskkill /pid 3017 那么這個進程就灰灰湮滅了:)
2、Linux netstat -pan | grep 9010
如果你稍微仔細一點,你會發(fā)現(xiàn),用的都是netsta命令,事實上,netstat是一個比較通用的網絡統(tǒng)計命令,幾乎適用于所有現(xiàn)在流行的操作系統(tǒng),無論是Linux,Window,還是其他Unix,或者Unix-like操作系統(tǒng),而且用法基本一致。
下面是一個對Windows系統(tǒng)中netstat命令行參數(shù)的詳細解釋。
格式: netstat [-a] [-e] [-n] [-o] [-p Protocol] [-b] [-r] [-s] [-v] [Interval]
參數(shù)說明: -a 顯示所有連接和監(jiān)聽端口。 -o 顯示與每個連接相關的所屬進程 ID。
-p 在Windows系統(tǒng)中,該選項用于指定默認情況的子集。proto 顯示 proto 指定的協(xié)議的連接;proto 可以是下列協(xié)議之一: TCP、UDP、TCPv6 或 UDPv6。 如果與 -s 選項一起使用以顯示按協(xié)議統(tǒng)計信息,proto 可以是下列協(xié)議之一:
-r 顯示路由表。 |
|