标题:QTcpSocket 为什么每次读到的都是8192
作者:蚂蚁power
日期:2017-07-28 17:31
内容:
大家好,服务端发送的字节数是10541,但是我这一次读取只能读到8192,剩下的还要下次一读取才能读到。为什么呢?读取的代码如下
QByteArray bufarray;
bufarray.resize(40960);
bufarray=m_socket.readAll();
#1 [蚂蚁power 07-28 17:46]
QByteArray bufarray;
bufarray.resize(m_socket.bytesAvailable());
m_socket.read(bufarray.data(),bufarray.size());
使用这种方式依然是8192. 真的是醉了。
还有设置 setReadBufferSize这个也是,仿佛8192是顶天了,不能在大了。
#2 回 蚂蚁power 的帖子 [uidab 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)
这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。
#3 [yuyu414 07-30 11:42]
这就是通信协议存在的意义了,根据通信协议判断是否接收完全
#4 回 uidab 的帖子 [蚂蚁power 07-31 10:49]
uidab:这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。 (2017-07-28 18:00)
明白了 谢谢
#5 回 yuyu414 的帖子 [蚂蚁power 07-31 10:49]
yuyu414:这就是通信协议存在的意义了,根据通信协议判断是否接收完全
(2017-07-30 11:42)
谢啦