您的位置:首页 > 理论基础 > 计算机网络

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

2010-12-03 17:09 387 查看
    //组装数据包
    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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qt 2010