• 176阅读
  • 5回复

QTcpSocket 为什么每次读到的都是8192 [复制链接]

上一主题 下一主题
离线蚂蚁power
 

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




离线蚂蚁power

只看该作者 1楼 发表于: 07-28
    QByteArray bufarray;
    bufarray.resize(m_socket.bytesAvailable());
    m_socket.read(bufarray.data(),bufarray.size());
使用这种方式依然是8192. 真的是醉了。
还有设置 setReadBufferSize这个也是,仿佛8192是顶天了,不能在大了。
离线uidab

只看该作者 2楼 发表于: 07-28
回 蚂蚁power 的帖子
蚂蚁power:    QByteArray bufarray;
    bufarray.resize(m_socket.bytesAvailable());
    m_socket.read(bufarray.data(),bufarray.size());
使用这种方式依然是8192. 真的是醉了。
还有设置 setReadBufferSize这个也是,仿 .. (2017-07-28 17:46) 

这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线yuyu414

只看该作者 3楼 发表于: 07-30
这就是通信协议存在的意义了,根据通信协议判断是否接收完全
离线蚂蚁power

只看该作者 4楼 发表于: 07-31
回 uidab 的帖子
uidab:这个应该算是正常吧,一次发的数量,并不一定就是一次读到的数量,也许需要分次读取。 (2017-07-28 18:00) 

明白了 谢谢
离线蚂蚁power

只看该作者 5楼 发表于: 07-31
回 yuyu414 的帖子
yuyu414:这就是通信协议存在的意义了,根据通信协议判断是否接收完全
 (2017-07-30 11:42) 

谢啦
快速回复
限100 字节
 
上一个 下一个