Russian Qt Forum
Ноябрь 22, 2024, 19:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QUdpSocket большие пакеты  (Прочитано 5050 раз)
ti0
Новичок

Offline Offline

Сообщений: 38


Просмотр профиля
« : Декабрь 11, 2016, 20:23 »

По документации writeDiagram возвращает количество переданных байт. Если -1, то пакет слишком большой. Собственно максимальный размер пакета - 32768. Но мне нужно больше. Можно как то увеличить этот размер? Например, указать размер буфера, и т.п. ?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #1 : Декабрь 11, 2016, 22:09 »

ОС ?
Записан
ti0
Новичок

Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #2 : Декабрь 12, 2016, 00:47 »

Windows 10
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #3 : Декабрь 13, 2016, 14:13 »

думаю без вмешательства в настройки ОС увеличить нельзя
но т.к. пакет все равно будет фрагментирован сетевыми железяками, то передавать огромные udp смысла нет
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Декабрь 13, 2016, 14:45 »

никак. Единственный выход - ручная фрагментация и посылка кусочками. Причём (по крайней мере с использованием Qt 5.6.2) мне нужно было делать

Код
C++ (Qt)
for(... packets ..)
{
   socket.write(packets[i] ...);
   socket.flush();
   msleep(10);
}
 

в том потоке, где я шлю датаграммы. Иначе Qt видимо в буфере склеивало все кусочки опять в один и была снова ошибка DatagramTooLarge.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 23.