udpserver.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
socketFd = new QUdpSocket(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btnSendMessage_clicked()
{
QByteArray msg = ui->plainTextEdit->toPlainText().toLatin1();
msg.trimmed();
if( !msg.isEmpty() )
{
socketFd->writeDatagram(msg, QHostAddress::Broadcast, 10000);
}
}
udpclient.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
socketFd = new QUdpSocket(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::slot_readyRead()
{
QByteArray msg;
//设置数据报的长度
msg.resize(socketFd->pendingDatagramSize());
qDebug() << msg.size();
while(socketFd->hasPendingDatagrams())
{
socketFd->readDatagram(msg.data(),msg.size());
ui->plainTextEdit->appendPlainText(QString(msg));
}
}
void Widget::on_btnBind_clicked()
{
//绑定到指定的端口
socketFd->bind(10000);
connect(socketFd, SIGNAL(readyRead()), this, SLOT(slot_readyRead()));
}