過去調試c/c++ 的socket代碼,通常都只會打日誌,打日誌,其實這樣的調試方法太慢,過低效~ html
本文介紹一種如今廣泛在用的調試手段,落地成文,也給本身一個記錄。 c++
【工具】tcpdump、wireshark windows
【說明】 網絡
tcpdump用來抓tcp/udp包,能夠落地成文件。見鏈接 socket
wireshark是window下的一款網絡分析工具。見鏈接 tcp
【使用小記】 工具
step1: 完成編碼,編譯成二進制代碼如 a.exe。 字體
step2: 啓動a.exe,假設其向 100.2.3.4的9999端口請求,則,使用: 編碼
tcpdump -i eth1 host 100.2.3.4 and port 9999 -w check.cap -s 1024 調試
step3: 下載到windows機器,直接使用wireshark打開。舉例,找到以下圖內容:
選中Data(xx bytes)
下面藍色覆蓋字體即爲你向對方發的包體。如調試有問題,截圖給對方,很快就能定位到問題~
如0000001e爲網絡序的長度1e(16進制)=30(10進制),這個表示數據長度,不包含自己,因此第一圖中Length=34,這樣很容易定位到如:網絡序設置不對,長度不對等問題。