增加QTcpSocket

时间:2018-12-26 14:12:48

标签: qt sockets qtcpsocket

是否可以增加QTcpSocket的接收缓冲区大小?

有两种方法可以控制Qt的套接字接收缓冲区的大小:

void QAbstractSocket::setReadBufferSize()

  

QAbstractSocket的内部读取缓冲区的大小设置为size   字节...

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 KB。

是否可以增加缓冲区大小,而我在做什么错呢?

0 个答案:

没有答案