一生一世学坛

 找回密码
 立即注册
搜索
查看: 3523|回复: 0
打印 上一主题 下一主题

QDataStream简单得发送数据防止粘包

[复制链接]

334

主题

385

帖子

6830

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6830
跳转到指定楼层
楼主
发表于 2022-3-30 17:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QByteArray db;
        QDataStream ds(&db, QIODevice::WriteOnly);
        //ds.setDevice(socket);
        ds.setVersion(QDataStream:t_5_13);
        QString teststr = u8"我爱中国";
        ds << quint32(teststr.toUtf8().size());//发送长度
        ds << teststr.toUtf8();
       
        QDataStream dsr(&db, QIODevice::ReadOnly);
        //dsr.setDevice(socket);
        dsr.setVersion(QDataStream:t_5_13);
        QByteArray outarray ;
        quint32 messageSize = 0;
        //if(socket->bytesAvailable()>=sizeof(quint32))//读取长度
        dsr >> messageSize;//接收长度,接收和发送方得类型一定要一致
        dsr >> outarray;
        QString outstr = QString::fromUtf8(outarray);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|分享学习  

GMT+8, 2024-5-17 14:20 , Processed in 0.043782 second(s), 6 queries , File On.

声明:本站严禁任何人以任何形式发表违法言论!

本站内容由网友原创或转载,如果侵犯了您的合法权益,请及时联系处理!© 2017 zamxqun@163.com

皖公网安备 34010402700634号

皖ICP备17017002号-1

快速回复 返回顶部 返回列表