Socket不能读取实时数据的解决方法

        我们使用socket去获取数据包的时候实际上是把缓存区的数据读取了出来,有时候我们需要读取最近的一条信息,但是接受的的却是缓存区最上边的数据,不能达到实时,主要的解决思路大约有:

  1. 清空缓存,再读取
  2. 反复读取,直到缓存区为空

我这里是采用的第二种,代码为:

QByteArray ba = MainWindow::pSocket->read(1116);

QString ba2 = MainWindow::pSocket->read(1116);

while(ba.size()){

   ba2 = ba.toHex();

   ba = MainWindow::pSocket->read(1116);

}

QString str = ba2;
发布了31 篇原创文章 · 获赞 38 · 访问量 5018

猜你喜欢

转载自blog.csdn.net/qq_41685265/article/details/104328676
今日推荐