1. 程式人生 > >Bind failed! socket

Bind failed! socket

1、今天調更新一個程式,竟然在我最沒想到的地方發現了一個錯誤 Bind failed! 查。。查。。 三小時後解決 很坑。。。

第一步:在網上找了個檢視埠狀態的 命令 :

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////引用別人的哈 傳播正能量

開始–執行–cmd 進入命令提示符 輸入netstat -ano 即可看到所有連線的PID 之後在工作管理員中找到這個PID所對應的程式如果工作管理員中沒有PID這一項,可以在工作管理員中選”檢視”-“選擇列”

    經常,我們在啟動應用的時候發現系統需要的埠被別的程式佔用,如何知道誰佔有了我們需要的埠,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用

假如我們需要確定誰佔用了我們的9050埠

1、Windows平臺
在windows命令列視窗下執行:
1.檢視所有的端口占用情況

C:>netstat -ano

協議 本地地址 外部地址 狀態 PID

TCP 127.0.0.1:1434 0.0.0.0:0 LISTENING 3236
TCP 127.0.0.1:5679 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:7438 0.0.0.0:0 LISTENING 4168
TCP 127.0.0.1:8015 0.0.0.0:0 LISTENING 1456
TCP 192.168.3.230:139 0.0.0.0:0 LISTENING 4
TCP 192.168.3.230:1957 220.181.31.225:443 ESTABLISHED 3068
TCP 192.168.3.230:2020 183.62.96.189:1522 ESTABLISHED 1456
TCP 192.168.3.230:2927 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2929 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2930 117.79.91.18:80 ESTABLISHED 4732
TCP 192.168.3.230:2931 117.79.91.18:80 ESTABLISHED 4732

2.檢視指定埠的佔用情況
C:>netstat -aon|findstr “9050”

協議 本地地址 外部地址 狀態 PID

TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016

P: 看到了嗎,埠被程序號為2016的程序佔用,繼續執行下面命令: (也可以去工作管理員中檢視pid對應的程序)

3.檢視PID對應的程序
C:>tasklist|findstr “2016”

映像名稱 PID 會話名 會話# 記憶體使用
========================= ======== ================
tor.exe 2016 Console 0 16,064 K

P:很清楚吧,tor佔用了你的埠。

4.結束該程序

C:>taskkill /f /t /im tor.exe

其他不懂的用 help吧~

///////////////////////////////////////////////////////////////////////////////////////////

經查,確實是我的程式佔用了埠,但是為什麼會失敗呢?

因為機器是多網絡卡的,我又測試了其他IP地址,bind 成功了 。

換其他埠測試,還是成功了。

最後一個測試,我把程式關了,檢視埠,竟然還是很本程式佔用 ,瞬間無語了。。。

最後在工作管理員中,發現了一個“檢視其他使用者程式程序”的勾選,嘗試勾了一下。。。

簡直就是見證奇蹟的時刻:我發現這個電腦上還有其他使用者運行了我的程式,而且貌似一直沒關。就心中瞬間一萬隻 “草泥馬”飛過。。。。

果斷結束程序。。。。

然後問題解決了。。。。