Я посылаю UDP-пакеты с localhost на localhost, и при запуске пакеты иногда падают. Как это остановить и почему это происходит?

Это вывод из моей программы

sending agent update
Created new player
Identified
sending agent update
Physics: 2 ticks this frame
time= 200
time= 300
***Packet Dropped: 2:10 ***
***Packet Dropped: 2:11 ***
***Packet Dropped: 2:12 ***
***Packet Dropped: 2:13 ***
***Packet Dropped: 2:14 ***
***Packet Dropped: 2:15 ***
***Packet Dropped: 2:16 ***
***Packet Dropped: 2:17 ***
***Packet Dropped: 2:18 ***
***Packet Dropped: 2:19 ***
***Packet Dropped: 2:20 ***
***Packet Dropped: 2:21 ***
time= 400
Physics: 2 ticks this frame
time= 500
Physics: 2 ticks this frame

Отправляя пакеты с локального хоста на локальный хост, пакеты падают. Это происходит только в самом начале. Первые 10 или около того пакетов проходят, затем пакеты после этого падают. От 5 до 40 пакетов подряд. Затем пакеты перестают падать.

Есть ли какая-нибудь причина, по которой это должно происходить?

Обновление:

Следующий код исправил проблему.

int buffsize = 65536; // 65536
setsockopt(socket, SOL_SOCKET, SO_RCVBUF, (void*)&buffsize, sizeof(buffsize));

Я отправлял пакеты слишком быстро и превысил стандартный буфер приема windows, который составляет всего 8 КБ. Увеличение размера буфера устранило проблему.

7
задан HaltingState 16 December 2011 в 04:48
поделиться