socket編程出錯記事

最近在學linux socket通訊,寫下一些我犯過的錯,做備忘。主機是winxp(用cygwin),從機是virtual box的虛擬機ubuntu.

1.getaddrinfo、gethostbyname、gethostbyaddr出錯。

首先檢查網絡,發現主機和ubuntu能通過ip相互ping通,所以網絡應該沒問題。

出錯的原因在於根據ip獲取不到主機名,或根據主機名獲取不到有效的ip.所以要編輯主從機對於的host表。

winxp文件爲 C:\\WINDOWS\\system32\\drivers\\etc\\hosts

linux文件爲 /etc/hosts

在裏面加上本機ip和對應的名稱、想與之通訊的從機ip和名稱,上面的函數就能正確執行。


2.主機client連接linux,connect報錯:connection refused

首先用netstat檢查下端口是否打開,沒打開請檢查程序。

因爲linux一張網卡可以有多個ip,所有檢查server實際綁定bind的ip是否client發起socket連接的ip.這個可以在server裏面添加log查看。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章