我必须发送10包和超时的每包应该是3秒。由于Android在Linux命令上工作,我在我的应用程序中使用了如下ping命令:
ping -c 10 -W 3 -s 32 www.google.com
它给出了以下响应,我在缓冲区中读取,并在控制台中以前缀打印时间戳(月份日期hh:mm:ss:SSS):
01-27 16:49:08.733: icmp_seq=1 ttl=45 time=138 ms
01-27 16:49:09.774: icmp_seq=2 ttl=45 time=309 ms
01-27 16:49:10.585: icmp_seq=3 ttl=45 time=116 ms
01-27 16:49:11.566: icmp_seq=4 ttl=45 time=94.3 ms
01-27 16:49:12.567: icmp_seq=5 ttl=45 time=92.5 ms
01-27 16:49:14.569: icmp_seq=7 ttl=45 time=100 ms
01-27 16:49:15.570: icmp_seq=8 ttl=45 time=97.1 ms
01-27 16:49:16.551: icmp_seq=9 ttl=45 time=75.6 ms
01-27 16:49:17.552: icmp_seq=10 ttl=45 time=76.2 ms
01-27 16:49:18.584:-- www.google.com ping统计
01-27 16:49:18.584: 10发送的数据包,9次接收,10%的丢包,时间1099 27
因为第6包丢失了,但我没有收到任何超时事件/消息。超时时间为3秒(-W 3),但在3秒超时之前仍收到第7个数据包。
各位专家,您能不能让我们了解一下在Android/Linux中ping超时(-W)是如何工作的?我应该使用另一个参数来实现我的需求吗?
发布于 2014-01-28 08:06:31
如果我正确地理解了您,您应该使用-w选项(而不是-W)。有人在这里解释过:https://stackoverflow.com/questions/17951182/ping-timeout-command-w-not-working-for-android
发布于 2014-01-28 13:55:08
-w是ping命令的最后期限,而不管发送/接收的数据包是多少。对于每个数据包响应,我必须等待3秒(最长时间)。如果在3秒内没有响应,下一个数据包应该在此之后发送。
引用:窗口的ping命令行为,如下所述
ping -n 4 -w 3000 www.abcd.com
用32字节的数据Pinging www.google.com 173.194.38.178:
173.194.38.178: bytes=32 time=61ms TTL=53
请求超时。
173.194.38.178: bytes=32 time=68ms TTL=53
173.194.38.178: bytes=32 time=61ms TTL=53
173.194.38.178: bytes=32 time=66ms TTL=53
https://serverfault.com/questions/570336
复制相似问题