6

In my Android application, I have used the ping command with appropriate option mentioned in below link: http://linux.about.com/od/commands/l/blcmdl8_ping.htm

除 -W 超时外,所有其他选项均有效。

我正在使用此命令 ping 5 秒超时: ping 131.107.8.1 -W 5 我相信这应该在 5 秒后给出“请求超时”。我还使用“Test Ping”应用程序对其进行了测试,但在那里也失败了。

在我的 Windows 机器中,我对相同的 IP 使用此命令: ping 131.107.8.1 -w 7000 它在 7000 毫秒后正确给出“请求超时”。

任何指针我在哪里错过了这个概念?

4

2 回答 2

2

我不完全确定 Android 的 Ping 实现,但在 Linux 上,标志ping -wping -W操作非常不同。

在这种情况下,您正在使用ping -W,它等待网络发生超时。根据手册页:

-W timeout 等待响应的时间,以秒为单位。该选项仅在没有任何响应的情况下影响超时,否则 ping 会等待两个 RTT。

我相信您尝试做的是为 Ping 命令设置截止日期,例如ping -w手册页再次描述:

-w 期限 指定 ping 退出前的超时时间(以秒为单位),无论已发送或接收了多少数据包。在这种情况下,发送计数数据包后 ping 不会停止,它会等待截止日期到期或直到计数探测得到响应或来自网络的一些错误通知。

于 2013-07-30T15:35:40.690 回答
0

Ping 超时仅在确定 IP 地址后开始。如果您的工作站处于脱机状态,则 ping 无法确定 IP 地址,因此在返回 false 之前似乎要等待大约默认 20 秒。

来源:https ://serverfault.com/a/739873/156789

于 2016-06-04T21:01:44.723 回答