在windows下,wireshark没有本地回环地址,导致在本地测试时无法抓取数据包。
解决对策:
添加路由:route add 本机ip mask 255.255.255.255 网关ip metric 跳数
删除路由:route delete 本机ip mask 255.255.255.255 网关ip metric 跳数
例如:
route add 192.168.1.103 mask 255.255.255.255 192.168.1.1 metric 1
route delete 192.168.1.103 mask 255.255.255.255 192.168.1.1 metric 1
原理就是让本地的数据包去网关兜一圈再回来,这时就可以捕获到数据包了。
测试完成后记得将路由删除,否则所有本机报文都经过网卡出去走一圈回来很耗性能。
另外需要注意,建立连接应该用本机具体的ip,不应该用localhost、127.0.0.1。
Socket socket = new Socket(“192.168.1.103”, 10000); //连接本地具体ip地址