看板 LinuxDev 關於我們 聯絡資訊
請問大家利用Linux socket作TCP/IP傳輸時有沒有遇過收錯資料的情形? 我用socket APIs寫了一對server和client的程式,並透過TCP/IP作communication 兩支程式跑在同一台電腦上用127.0.0.1這個IP作測試 這兩支程式在我的NB上跑一切正常,但是一移植到PC上就出問題了 client送出資料後server有接收到資料,但是收到的資料是錯的 ex: client送出0x00000001 但是server收到的是0x00000000 本來以為是firewall在作怪,可是把firewall關掉後問題還是沒有解決 我想請問有什麼原因可能會發生這種現象? thx!! ps1 我的NB和PC系統都是ubuntu 8.04 但是NB是64-bits的;PC是32-bits的 不過我想這應該不會影響到吧?  畢竟用x86_64-gcc和x86-gcc作compile都沒有問題 ps2 因為某些原因,所以不太方便把code貼出來給大家看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.105.115
Neo1978:int 長度不同吧 02/20 10:23
server和client都是run在同一台電腦上 所以應該不是這個原因 ※ 編輯: SILee 來自: 140.116.164.216 (02/20 17:39)
yehsd:你的 code 中考慮的 errno 有哪幾種? 02/20 22:09
yehsd:socket 會掛, 原因有很多, errno 沒考慮完整是很容易發生的 02/20 22:10
antontw:用 wireshark 或 tcpdump 看一下到底是發還是收的問題 02/22 01:15
我用這個方法去monitor 結果wireshark抓出來的問題是client送出去的packet有checksum error 我並不是用RAW socke自己包packet傳資料 所以checksum是OS自己算的啊...怎麼會出錯? 一整個詭異 ※ 編輯: SILee 來自: 140.116.164.97 (02/23 13:05)
TroyLee:我的筆電的網卡用wireshark也常常遇到checksum error... 02/23 19:22
nfsnfs:我電腦的網卡也是常常看到 checksum error.. 02/26 22:35
mecs:checksum 在 wireshark 上顯示錯誤有可能是 offloading .. 02/27 12:12