找回密码
 立即注册
收起左侧

UdpSocket 接收到的数据报如何读取

1
回复
6417
查看
[复制链接]
累计签到:7 天
连续签到:1 天
来源: 2015-12-1 16:02:49 显示全部楼层 |阅读模式
1Qter豆
void Dialog::processPendingDatagrams()
{
    QByteArray datagramRecv;
    QHostAddress sendHost;
    quint16 sendPort = 0;
    do
    {
        datagramRecv.resize(udpSocketTer.pendingDatagramSize());
        udpSocketTer.readDatagram(datagramRecv.data(),datagramRecv.size(), &sendHost, &sendPort);

    }while(udpSocketTer.hasPendingDatagrams());

    QString brr(datagramRecv);
    qDebug()<<"1: "<<brr;

    QDataStream in(&datagramRecv, QIODevice::ReadWrite);
    in.setVersion(QDataStream:t_4_8);

    QString arr;
    in>>arr;
    qDebug()<<"2: "<<arr;
//    ui->tEditRecvContent->setText(arr);

}
上面程序中,打印两次QString类内容,一次由  QString brr(datagramRecv) 直接构造生成,另一次有QDataStream类输出,为什么第一次打印没有内容,第二次正确输出收到的报文?







回复

使用道具 举报

累计签到:7 天
连续签到:1 天
2015-12-1 18:05:10 显示全部楼层
另外,QByteArray类如何转换到char数组?我试了一下datagramRecv.data  ,结果是空的字符数组
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了