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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QUdpSocket + пакеты большого размера.  (Прочитано 11224 раз)
eugene.n
Гость
« Ответ #15 : Апрель 29, 2014, 11:59 »

Или расширяют буфер на принимающей стороне...

так моя программа даже не подозревает о существовании сервера, т.к. сокет без соединения. То есть, практически, мы измеряем не пропускную способность сети, а сколько байт может отправить клиент за 1 с.
Записан
Bepec
Гость
« Ответ #16 : Апрель 29, 2014, 13:37 »

Тогда я вас не понимаю. Как можно измерить количество отправляемой информации за 1 секунду, если эту информацию никто не принимает? Улыбающийся Никак. Ведь на отправляющей стороне вы в стороне от самого процесса отправки.

А вот если будет принимающая сторона, то она как раз и измеряет количество принятой информации. И если буфер маленький, часть (большая) пакета будет теряться.
Записан
eugene.n
Гость
« Ответ #17 : Апрель 29, 2014, 14:00 »

Тогда я вас не понимаю. Как можно измерить количество отправляемой информации за 1 секунду, если эту информацию никто не принимает? Улыбающийся Никак. Ведь на отправляющей стороне вы в стороне от самого процесса отправки.

А вот если будет принимающая сторона, то она как раз и измеряет количество принятой информации. И если буфер маленький, часть (большая) пакета будет теряться.

Принимающая сторона есть. И там можно посмотреть что все данные пришли. Но клиент то не знает о принимающей стороне ничего, так что скорость отправки сообщений ни как не может зависеть от размера буфера приемника. Главный вопрос, почему writeDatagram() работает так медленно, когда у него в распоряжении канал в 10 Гбит/с.

ps. Согласен, что у меня измеряется не сама скорость передачи, а скорее (размер пакета) * (количество удачных завершений writeDatagram()). Принимающая сторона показывает такую же скорость (~1 Гбит/с). Ниже прикрепил график изменения скорости при изменении размера пакетов.
« Последнее редактирование: Апрель 29, 2014, 14:19 от eugene.n » Записан
Bepec
Гость
« Ответ #18 : Апрель 29, 2014, 14:36 »

Да, кстати буфер и на отправляющей стороне как бы увеличить можно, насколько я помню )

Ммм.. разовью мысль. Что будет если у сокета будет переполнен буфер отправки? Мб он будет ждать его освобождения и до того момента он заблокирует передачу иных пакетов?

PS немного сумбурно, но попробовать стоит Веселый
Записан
eugene.n
Гость
« Ответ #19 : Апрель 29, 2014, 14:40 »

Да, кстати буфер и на отправляющей стороне как бы увеличить можно, насколько я помню )

Ммм.. разовью мысль. Что будет если у сокета будет переполнен буфер отправки? Мб он будет ждать его освобождения и до того момента он заблокирует передачу иных пакетов?

PS немного сумбурно, но попробовать стоит Веселый

Пробовал. Не помогло  Грустный

Код:
int bufferSize = 64 * 1024;   // до 4 * 1024 *1024
setsockopt(udpSocket->socketDescriptor(), SOL_SOCKET, SO_SNDBUF, (char *)&bufferSize, sizeof(bufferSize));
« Последнее редактирование: Апрель 29, 2014, 14:42 от eugene.n » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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