Можно ли увеличить QTcpSocket
размер буфера приема?
Существует два метода управления размером буфера приема сокета Qt:
void QAbstractSocket::setReadBufferSize()
Устанавливает размер внутреннего буфера чтения QAbstractSocket в байтах размера ...
и
void QAbstractSocket::setSocketOption()
с параметром QAbstractSocket::ReceiveBufferSizeSocketOption
:
Устанавливает размер буфера приема сокета в байтах на уровне ОС .Это соответствует опции сокета SO_RCVBUF .Эта опция не влияет на буферы QIODevice или QAbstractSocket (см. SetReadBufferSize ()).Это значение перечисления было введено в Qt 5.3.
Значение по умолчанию void readBuffer
равно 0, что соответствует собственному внутреннему буферу неограниченного Qt:
размер буфера0 означает, что буфер чтения неограничен и все входящие данные буферизуются.Это значение по умолчанию.
Поэтому я пытаюсь изменить размер буфера приема на уровне ОС с помощью setSocketOption
:
my_Soc->setSocketOption(QAbstractSocket::ReceiveBufferSizeSocketOption, 64 * 1024 * 1024);
, после чего проверяю значение:
int increasedSize = my_Soc->socketOption(
QAbstractSocket::ReceiveBufferSizeSocketOption).toInt();
increasedSize
соответствует значению 64 * 1024 * 1024
, которое я установил.Но на самом деле размер приемного буфера остается равным значению по умолчанию == 8 килобайт.
Можно ли увеличить размер буфера, и что я делаю неправильно?