Russian Qt Forum

Qt => Работа с сетью => Тема начата: Sergey1985 от Ноябрь 26, 2016, 19:18



Название: Потеря пакетов UDP
Отправлено: Sergey1985 от Ноябрь 26, 2016, 19:18
Доброго времени суток. Вопрос для гуру межсетевого программирования на Qt. Осуществил прием UDP пакетов. На малой скорости все работает замечательно. Но как только пытаюсь осуществить прием с требуемой скоростью (32000 пакетов в секунду по 1044 байт каждый) пакеты начинают теряться. Вместо 32000 прерываний я получаю только около 10-12 тыс. То есть как я понимаю ОС Windows просто не успевает откликаться на каждое прерывание. Может можно как то заставить буферизироваться данные а потом считывать сразу не по 1044 байт а скажем по 10440 и обрабатывать уже такой массив согласно задаче.


Название: Re: Потеря пакетов UDP
Отправлено: qate от Ноябрь 26, 2016, 19:59
я думаю надо начать с анализа лога сниффера, действительно ли пакеты приходят
hasPendingDatagrams конечно же используется ?


Название: Re: Потеря пакетов UDP
Отправлено: Sergey1985 от Ноябрь 27, 2016, 15:30
hasPendingDatagrams - не знаю такой функции если честно. И сниффер это что? Придется погуглить))) понять попробовать... и рассказать что получилось)


Название: Re: Потеря пакетов UDP
Отправлено: Bepec от Ноябрь 27, 2016, 16:46
У меня дежавю...
Данный вопрос в данной формулировке с данным изложением уже поднимался на форуме. Аж в двух экземплярах. Только ник ТСса другой :D


Название: Re: Потеря пакетов UDP
Отправлено: qate от Ноябрь 27, 2016, 17:11
hasPendingDatagrams - не знаю такой функции если честно. И сниффер это что? Придется погуглить))) понять попробовать... и рассказать что получилось)

см. http://doc.qt.io/qt-5/qudpsocket.html пример "Example:"


Название: Re: Потеря пакетов UDP
Отправлено: Sergey1985 от Ноябрь 27, 2016, 17:51
У меня дежавю...
Данный вопрос в данной формулировке с данным изложением уже поднимался на форуме. Аж в двух экземплярах. Только ник ТСса другой :D

А ссылочки на эти темы ПЛИЗ ::)