2015-03-26 3 views
1

У меня есть клиентская программа C# и программа на C++, которые используют UDP для связи. Пока я просто использую 127.0.0.1 (localhost) для имитации связи на одной машине.UDP не отбрасывает пакеты

Проблема заключается в том, что никакие UDP-пакеты не были удалены из моего теста на 10 000 пакетов между клиентом и сервером на одном компьютере, поэтому я не знаю, как написать код для повторной передачи, потому что я не могу заставить его отказаться от пакет, но это произойдет в реальном сценарии между клиентом и сервером на отдельных машинах.

Не отбрасывает ли какие-либо пакеты, потому что клиент и сервер находятся на одной машине?

+3

Да, это так. Очень сложно отбросить пакеты по петлевому соединению. – rici

+4

'if (rand() immibis

+0

Спасибо, ребята. @immibis ah ok, я думал, что смогу сделать что-то подобное –

ответ

1

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

Смежные вопросы