QT中TCP/UDP通信数据的组织

QT中TCP/UDP通信数据的组织


    //组装数据包
    QString msgType = "MSG_CLIENT_NEW_CONN";
    QByteArray block;
    QDataStream out(&block, QIODevice::WriteOnly);
    out.setVersion(QDataStream::Qt_4_6);
    QString xxx;
    QString yyy;
    QString zzz;
    out << (quint16)0 << msgType << xxx << yyy << zzz;
    out.device()->seek(0);
    out << (quint16)(block.size() - sizeof(quint16));
    udpSocket->writeDatagram(block.data(), block.size(), QHostAddress(ip), (quint16)port);


    //读取数据包
    QByteArray block;
    block.resize(udpSocket->pendingDatagramSize());
    if ( -1 == udpSocket->readDatagram(block.data(), block.size(), &senderIp, &senderPort))
            continue;
    QDataStream in(&block,QIODevice::ReadOnly);
    quint16 dataGramSize;
    QString msgType; 
    in >> dataGramSize >> msgType;
    if ( "MSG_CLIENT_NEW_CONN" == msgType )
    {
       QString xxx;
       QString yyy;
       QString zzz;
       in >> xxx >> yyy >> zzz;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值