查看完整版本: [-- QTcpSocket 为什么每次读到的都是8192 --]

QTCN开发网 -> Qt基础编程 -> QTcpSocket 为什么每次读到的都是8192 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

蚂蚁power 2017-07-28 17:31

QTcpSocket 为什么每次读到的都是8192

大家好,服务端发送的字节数是10541,但是我这一次读取只能读到8192,剩下的还要下次一读取才能读到。为什么呢?读取的代码如下
QByteArray bufarray;
bufarray
.resize(40960);
bufarray
=m_socket.readAll();





蚂蚁power 2017-07-28 17:46
    QByteArray bufarray;
    bufarray.resize(m_socket.bytesAvailable());
    m_socket.read(bufarray.data(),bufarray.size());
使用这种方式依然是8192. 真的是醉了。
还有设置 setReadBufferSize这个也是,仿佛8192是顶天了,不能在大了。

uidab 2017-07-28 18:00
蚂蚁power:    QByteArray bufarray;
    bufarray.resize(m_socket.bytesAvailable());
    m_socket.read(bufarray.data(),bufarray.size());
使用这种方式依然是8192. 真的是醉了。
还有设置 setReadBufferSize这个也是,仿 .. (2017-07-28 17:46) 

这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。

yuyu414 2017-07-30 11:42
这就是通信协议存在的意义了,根据通信协议判断是否接收完全

蚂蚁power 2017-07-31 10:49
uidab:这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。 (2017-07-28 18:00) 

明白了 谢谢

蚂蚁power 2017-07-31 10:49
yuyu414:这就是通信协议存在的意义了,根据通信协议判断是否接收完全
 (2017-07-30 11:42) 

谢啦


查看完整版本: [-- QTcpSocket 为什么每次读到的都是8192 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled