簡體   English   中英

初始化套接字時出錯:port = 6000。 地址已在使用中

[英]Error initializing sockets: port=6000. Address already in use

我想在我的Ubuntu 11中使用C ++開發了一個模擬器程序,當我想要從Linux的進程列表中刪除這個進程並想再次運行它時,我遇到了這個錯誤:

 Error initializing sockets: port=6000. Address already in use 

我使用lsof命令查找進程的PID:

 saman@jack:~$ lsof -i:6000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rcssserve 8764 saman 3u IPv4 81762 0t0 UDP *:x11 

之后,我試圖殺死8764的PID。但仍然有錯誤。 我該如何解決?

我認為你遇到的問題是套接字如果沒有正確關閉那么它仍然保留並等待內核關閉超時。

嘗試做netstat -nutap並查看是否有這樣的行:

tcp        0      0 AAA.AAA.AAA.AAA:6000     XXX.XXX.XXX.XXX:YYYY       TIME_WAIT   -

如果是這種情況你只需要等到內核掉線(大約30秒),直到你可以在6000打開套接字而不會發生沖突

似乎端口6000被X窗口系統(linux的GUI部分)使用,並且當你終止進程時可能只是重新啟動...你需要在沒有運行X-windows的情況下運行模擬,或者你調整代碼使用不同的端口..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM