UDP-буфер в C # на XP - PullRequest
       23

UDP-буфер в C # на XP

0 голосов
/ 14 марта 2011

У меня непрерывный поток пакетов udp на компьютер под управлением Windows XP.В какой-то момент я запускаю прослушиватель (написанный на C #), который обрабатывает полученные пакеты udp.

Когда я запускаю прослушиватель, получу ли я пакеты, которые были отправлены до того, как прослушиватель был запущен из-за буфера, или могуЯ уверен, что первый пакет, который я получаю в моем приемнике, на самом деле является первым пакетом, полученным с момента запуска приемника?

1 Ответ

4 голосов
/ 14 марта 2011

Доставка UDP не гарантируется, чтобы прибыть в порядке, прибыть вообще, прибыть только один раз, или прибыть после определенного времени .

Следовательно, вам также необходимо обрабатывать UDP-пакеты, которые были отправлены до , когда вы начали прослушивать порт, но по какой-то причине совершили кругосветное путешествие и не прибыли до после ты начал слушать.

В большинстве реализаций O / S, когда UDP-пакет поступает в порт (и не транслируется), и никто не прослушивает UDP на этом порту, пакет отбрасывается. Однако существует вероятность того, что UDP-пакет поступит в O / S и попадет в очередь во внутреннем буфере сетевого драйвера, за до O / S сможет обработать его при запуске слушателя. Тогда вы тоже это увидите.

В общем, никогда не предполагайте, что из пакетов UDP исходит что-либо надежное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...