Как влиять на время отправки датаграммы

103
15 октября 2019, 07:10

Есть qudpsocket. Есть два массива байт. Мне нужно отправить их в одной датаграмме. Самый простой вариант - копировать два массива в один. Мне он не нравится. Хорошо бы сначала записать в сокет один массив, потом второй а потом отправить датаграмму. Есть ли такой вариант? Как я понимаю датаграмма отправиться сразу же как только закончится запись в сокет

Answer 1

Обратите внимание на описание метода QAbstractSocket::flush():

In most cases, you do not need to call this function, because QAbstractSocket will start sending data automatically once control goes back to the event loop.

что переводится примерно так:

В большинстве случаев Вам не нужно вызывать эту функцию, потому что QAbstractSocket автоматически начнет отправку данных в тот момент, когда управление вернется в цикл событий.

Это в свою очередь означает, что пока происходит выполнение какого-то метода, Вы можете писать во внутренний буфер сокета сколько угодно раз до тех пор, пока метод не завершится (управление не перейдет в цикл событий), либо пока вы явно не вызовите flush.

READ ALSO
Как работать с TUN на с++ [закрыт]

Как работать с TUN на с++ [закрыт]

Как работать с tun на с++ и обрабатывать пакеты +Можете ли скинуть какой-нить материал по TUN

99
Корреляционный код в С++

Корреляционный код в С++

Есть задача, с бинарной системы исчисления провести корреляцию, то есть с 1001 должно выйти 10010110Каждая единица это 10, а ноль это 01

91
Удаление указателя в слоте при связи destroyed()

Удаление указателя в слоте при связи destroyed()

У меня есть участок кода, который в определённых случаях генерирует ошибку, которую мне никак не удаётся понятьСвязана она с освобождением...

131
Ошибка при подключении DLL

Ошибка при подключении DLL

У меня есть DLL библиотекаВот ее код:

106