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

来源:互联网 发布:淘宝买苹果7手机靠谱吗 编辑:程序博客网 时间:2024/05/18 02:27

    //组装数据包
    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;

    }

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/furtherchan/archive/2010/05/11/5579978.aspx

原创粉丝点击