16,225
社区成员
发帖
与我相关
我的任务
分享
#include "receiver.h"
#include "ui_receiver.h"
#include <QtNetwork>
Receiver::Receiver(QWidget *parent) :
QDialog(parent),
ui(new Ui::Receiver)
{
ui->setupUi(this);
receiver=new QUdpSocket(this);
connect(receiver,SIGNAL(readyRead()),this,SLOT(processPendingDatagram()));
}
Receiver::~Receiver()
{
delete ui;
}
void Receiver::processPendingDatagram()
{
//拥有等待的数据报
while(receiver->hasPendingDatagrams())
{
QByteArray datagram;
//让datagram的大小为等待处理数据报的大小,这样才能接收到完整的数据
datagram.resize(receiver->pendingDatagramSize());
//接收数据报,将其存放到datagram中
receiver->readDatagram(datagram.data(),datagram.size());
ui->plainTextEditReceivedMessage->setText(datagram);
}
}
void Receiver::on_pushButtonBind_clicked()
{
QHostAddress hostAddress;
hostAddress.setAddress(ui->lineEditHostAddressA->text());
bool ok;
qint16 port=ui->lineEditHostPortA->text().toShort(&ok);
if(!ok)
{
return;
}
receiver->bind(hostAddress,port);
ui->pushButtonBind->setEnabled(false);
}