在我的Android应用程序中,我使用了ping命令和下面的链接中提到的适当选项:ping.htm
除了超时的-W之外,所有其他选项都在工作。
我正在使用这个命令来使用5秒超时: ping 131.107.8.1 -W 5,我认为这应该在5秒后给出“请求超时”。我还用"Test“应用程序测试了它,但是它也失败了。
就像在我的windows机器中一样,我对同一个IP使用这个命令: ping 131.107.8.1 -w 7000,并且它在7000毫秒后正确地给出了“请求超时”。
任何指针,我在哪里错过了这个概念?
发布于 2013-07-30 15:35:40
我不太确定Android实现Ping的情况,但在Linux上,ping -w和ping -W的标志有很大不同的操作。
在本例中,您使用的是ping -W,它等待整个网络发生超时。根据手册页:
等待响应的-W超时时间,以秒为单位。该选项只影响任何响应的超时,否则ping将等待两个RTT。
我相信您要做的是为Ping命令设定一个最后期限,例如手册页再次描述的ping -w:
-w截止日期指定超时时间(以秒为单位),在ping退出之前,不管发送或接收了多少数据包。在这种情况下,ping不会在发送计数数据包之后停止,它会等待截止日期过期,或者等待计数探测被回答,或者等待来自网络的错误通知。
发布于 2016-06-04 21:01:44
Ping超时只在IP地址确定之后才开始。如果您的工作站离线,则ping无法确定IP地址,因此在返回false之前,似乎要等待大约20秒的默认时间。
https://stackoverflow.com/questions/17951182
复制相似问题