socket程式設計出錯記事

2021-06-08 04:45:46 字數 578 閱讀 5304

最近在學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檢視。

socket程式設計

一直以為serversocket accept之後客戶端才能發資訊,實驗後得出如下結論 1 serversocket沒有accept時,client是可以傳送資訊到server端的。2 serversocket accept之後,正在處理訊息時,client也是可以傳送資訊到server端。如果se...

Socket程式設計

對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...

socket程式設計

建立socket 建立乙個 socket,它可用於在基於 tcp ip 的網路 如 internet 上通訊。socket s new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 若要使用 udp 而不是 ...