Назад | Перейти на главную страницу

Android / Linux Ping отправляет другой пакет до тайм-аута пакета

Мне нужно отправить 10 пакетов, и таймаут для каждого пакета должен составлять 3 секунды. Поскольку Android ping работает с командами ping Linux, я использую следующую команду ping в своем приложении:

ping -c 10 -W 3 -s 32 www.google.com

Он дает следующий ответ, который я прочитал в буфере и распечатал в консоли с отметкой времени (месяц-дата чч: мм: сс: SSS) в префиксе:

01-27 16:49: 08.733: icmp_seq = 1 ttl = 45 время = 138 мс

01-27 16:49: 09.774: icmp_seq = 2 ttl = 45 время = 309 мс

01-27 16:49: 10.585: icmp_seq = 3 ttl = 45 время = 116 мс

01-27 16:49: 11.566: icmp_seq = 4 ttl = 45 время = 94,3 мс

01-27 16:49: 12.567: icmp_seq = 5 ttl = 45 время = 92,5 мс

01-27 16:49: 14.569: icmp_seq = 7 ttl = 45 время = 100 мс

01-27 16:49: 15.570: icmp_seq = 8 ttl = 45 время = 97,1 мс

01-27 16:49: 16.551: icmp_seq = 9 ttl = 45 время = 75,6 мс

01-27 16:49: 17.552: icmp_seq = 10 ttl = 45 время = 76,2 мс

01-27 16:49: 18.584: --- www.google.com статистика ping ---

01-27 16:49: 18.584: 10 пакетов передано, 9 получено, 10% потеря пакетов, время 1099 мс

Поскольку 6-й пакет пропущен, но я не получил для него никаких сообщений о тайм-аутах. И тайм-аут составлял 3 секунды (-W 3), но все же 7-й пакет был получен до тайм-аута 3 секунды.

Кто-нибудь из экспертов, не могли бы вы дать нам понять, как работает тайм-аут ping (-W) в Android / Linux? Должен ли я использовать другой параметр для достижения моих требований?

-w - это крайний срок выполнения команды ping независимо от количества отправленных / полученных пакетов. Я должен ждать (максимальное время) 3 секунды для каждого ответа на пакет. В случае отсутствия ответа в течение 3 секунд, следующий пакет должен быть отправлен после этого.

Ссылка: поведение команды окна ping, как указано ниже

ping -n 4 -w 3000 www.abcd.com

Проверка связи с www.google.com [173.194.38.178] с 32 байтами данных:

Ответ от 173.194.38.178: байты = 32 время = 61 мс TTL = 53

Истекло время запроса.

Ответ от 173.194.38.178: байты = 32 время = 68 мс TTL = 53

Ответ от 173.194.38.178: байты = 32 время = 61 мс TTL = 53

Ответ от 173.194.38.178: байты = 32 время = 66 мс TTL = 53

Если я вас правильно понял, вам следует использовать параметр -w (не -W). Кто-то объяснил это здесь: https://stackoverflow.com/questions/17951182/ping-timeout-command-w-not-working-for-android