笔记:udp接收数据展示

//udprecv-------------------------------------------------------------------------------------------------------------------------------------------------------------

Udprecv::Udprecv()
{
    mSocket = new QUdpSocket();
    mSocket->bind(QHostAddress::LocalHost,10086);

    connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_data()));
}

方式一

void Udprecv::read_data()
{
    QHostAddress address;
    quint16 port;
    array.resize(mSocket->bytesAvailable());//根据可读数据来设置空间大小
    mSocket->readDatagram(array.data(),array.size(),&address,&port);

//读取数据readDatagram ( char * data, qint64 maxSize, QHostAddress * address = 0, quint16 * port = 0 )

    emit send_data(array); //QByteArray&    QByteArray array;
}

方式二

void Udprecv::read_data()
{
    while(mSocket->hasPendingDatagrams())
    {
        //array.clear();
        array.resize(mSocket->pendingDatagramSize());
        mSocket->readDatagram(array.data(), array.size());
        emit send_data(array);
    }
    return;    
    }

//config-------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

Udprecv* m_udp;

connect(m_udp,SIGNAL(send_data(QByteArray&)),this,SLOT(displayUdp(QByteArray& )));//运行报错 原因是之前m_udp没有new,只是单纯声明

 

void config::displayUdp(QByteArray& array)
{
#ifdef WIN32 
    ui.udpLogTextEdit->append(array);
#else
    ui.udpLogTextEdit->append(UtfToGbk(array));
#endif
    return;
}

---------------------------------------------------------------------------------------------------------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值