我手上有一个有趣的情况,我不太清楚如何去解决它。我做了一些类似于我的情况的搜索,但没有任何匹配。如果答案已经存在,我会很感激任何能够指引我的人。什么会导致ICMPsendEcho失败,当ping.exe成功
好的,重点。
我正在写监视互联网连接的看门狗应用程序。它的目的是以设定的时间间隔ping一组域,当它们中的任何一个响应ping时,状态计时器被重置。如果状态计时器超过设定的阈值,则尝试采取几个纠正措施阶段来解决问题。
够简单吧?
这是它变得奇怪的地方。
我正在使用ICMPsendecho发出ping请求。在我的开发环境(win7)上,它似乎工作正常,测试和一切顺利。但是,在部署它的环境中,它没有收到回应。部署环境是Windows XP sp3机器。
在整个故障排除过程中,我已经注意到几件事情,这些事情可能会或可能不会有助于实际尝试解决此问题。
windows ping.exe在我用来测试连接状态的所有域的部署环境上工作得很好,它只有我的ICMPsendecho调用似乎无法生成响应。
我已经在部署环境中安装wireshark,并且可以看到两种类型的ping上的请求都成功发出数据包。 windows ping生成长度为74字节的请求数据包,我的程序调用生成长度为42字节的数据包。 Windows响应数据包在接收时类似于74个字节。
安装Wireshark后切换到开发环境一分钟。 Windows ping与部署环境中的数据包一样会生成类似的情况。但是,我的应用程序在生成请求时,数据包的长度为42个字节(与部署环境相同),但收到的响应长度为60个字节。
正如我所说的,该信息可能会或可能不会有用,但我试图找出为什么此应用程序无法生成ICMP响应时,Windows平台似乎在该机器上正常工作。
另一个小小的消息可能会帮助,互联网连接监控使用AT & T的提升4G热点,实际的设备是无线的MC8790 AirPrime卡。
任何人有任何想法,为什么这些ping失败?
提前感谢您提供的任何有用信息,并花时间阅读我的文章。
PS。
did ICMPSendEcho返回错误? – OnTheFly 2012-02-20 23:42:25
没有错误,它只是没有收到回应。 – PoultrySlave 2012-02-21 14:19:21
什么是Windows版本? – 2012-02-21 21:42:48