最近在學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 而不是 ...