过去调试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,这样很容易定位到如:网络序设置不对,长度不对等问题。