很多時候我們通過adb 連接 android 模擬器調試網絡程序,也許你能直接訪問瀏覽器,瀏覽網站,但是卻無法ping同局網的一個機器,比如:
# ping www.sina.com
PING puppis.sina.com.cn (221.236.31.210) 56(84) bytes of data.
^C
--- puppis.sina.com.cn ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3001ms
有的說是模擬器在10.x.x的問題,但是如果是網段問題,是不會訪問網站的。
我抓了一下包,驗證一下,是否是模擬器屏蔽了底層的功能,不抓不知道,一抓才知道,模擬器把icmp的協議類型搞錯了,本應該是0x1,結果搞成了0x11,
當然數據包也就從icmp變成了udp,相信沒有那個server會在udp的echo端口監聽吧。
看來google對網絡協議似乎不是太嚴禁:)
