Android 默认没有 tcpdump,从网上下一个其它人 port 的版本就可以了,这个很容易 google 到,我就不再赘述了。也可以自己从 下载源码编译。NDK r5 之后直接用 toolchain 编译就行。
如果我们用 tcpdump 来调试 http 程序,可以这么写:
tcpdump -p -nnn -vvv -s 0 -w /sdcard/1.pcap port 80 and tcp
-p 是不开混杂模式,不过如果是用 3G/GPRS,区别不大...
-nnn 不解析地址,直接显示IP和端口
-s 0 最好加上,否则很多包都会被截断,就看不全了
-w 保存到 sdcard 上
port 80 and tcp,限定只看 80 端口的请求,调试 http 通讯比较合适
最后保存成的 pcap 文件用 Wireshark 就能很方便地看了。