Ping.send (ip, timeout) в .net возвращается слишком быстро и жалуется на тайм -аутC#

Место общения программистов C#
Ответить
Anonymous
 Ping.send (ip, timeout) в .net возвращается слишком быстро и жалуется на тайм -аут

Сообщение Anonymous »

Я неоднократно использую этот метод, чтобы контролировать соединение с машиной в локальной сети. Когда тот же тест проводится из CMD, результаты являются устойчивыми и последовательными: < /p>

Код: Выделить всё

C:\Windows\system32>ping -t 192.168.11.12

Pinging 192.168.11.12 with 32 bytes of data:
Reply from 192.168.11.12: bytes=32 time=1ms TTL=126
Reply from 192.168.11.12: bytes=32 time=1ms TTL=126
< /code>

Но при запуске от C# с таймером 500 мс время он иногда терпит неудачу даже до истечения срока действия тайм-аута: < /p>

public void TestIpAnswersPing()
{
var ip = "192.168.11.12";
var timeout = TimeSpan.FromMilliseconds(500);

var p = new Ping();

foreach (var i in Enumerable.Range(0, 1000))
{
var start = DateTime.Now;
PingReply reply = p.Send(ip, (int)timeout.TotalMilliseconds);

if(reply.Status != IPStatus.Success)
{
Debug.Assert(DateTime.Now - start >= timeout);
}
}
}
Если я изменяю тайм -аут на 1 секунду - все успешно прохождение со средним временем пингов 0,9 мс.

Единственная похожая вещь, которую я обнаружил, - это - http://support.microsoft.com/kb/253627, что не помогает. Как контролировать высокую скорость соединения?

Подробнее здесь: https://stackoverflow.com/questions/119 ... on-timeout
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»