admin管理员组文章数量:1516870
在Windows XP环境下开发的路由探测程序搬到Windows 7下面编译运行发现在recvfrom()调用后并没有收到应有的ICMP响应报文,问题困扰了我大概1天的时间,最后发现把代码放到XP下面编译可以,运行结果正确,到了Windows 7下面就是不行。通过Google得知,在Windows 7平台下,安全策略要比Windows XP严格许多,默认情况下,Windows 7的防火墙屏蔽了ICMP回显报文,也就是说,防火墙阻止了ICMP报文,所以在调用recvfrom函数的时候总是SOCKET_ERROR,错误代码是WSAETIMEDOUT,显示超时,读不到ICMP的报文响应。
解决方案:
关闭防火墙,如果觉得关闭防火墙不安全的话,那就新建一个防火墙过滤规则,详细方法见:http://www.howtogeek/howto/windows-vista/allow-pings-icmp-echo-request-through-your-windows-vista-firewall/
版权声明:本文标题:Windows 7 环境下基于原始套接字和ICMP的路由探测开发的问题【1】 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1728605164a1390288.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论