//UDPserver文件
//receiver.h
#ifndef RECEIVER_H
#define RECEIVER_H
#include <QDialog>
class QUdpSocket;
namespace Ui {
class Receiver;
}
class Receiver : public QDialog
{
Q_OBJECT
public:
explicit Receiver(QWidget *parent = 0);
~Receiver();
private:
Ui::Receiver *ui;
QUdpSocket *receiver;
private slots:
void processPendingDatagram();
};
#endif // RECEIVER_H//receiver.cpp
#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);
receiver->bind(4396,QUdpSocket::ShareAddress);
connect(receiver,&QUdpSocket::readyRead,this,
&Receiver::processPendingDatagram);
}
Receiver::~Receiver()
{
delete ui;
}
void Receiver::processPendingDatagram()
{
while(receiver->hasPendingDatagrams())
{
QByteArray datagram;
datagram.resize(receiver->pendingDatagramSize());
receiver->readDatagram(datagram.data(),datagram.size());
ui->label->setText(datagram);
}
}//main.cpp
#include "receiver.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Receiver w;
w.show();
return a.exec();
}//UPDsender文件
//sender.h
#ifndef SENDER_H
#define SENDER_H
#include <QDialog>
class QUdpSocket;
namespace Ui {
class Sender;
}
class Sender : public QDialog
{
Q_OBJECT
public:
explicit Sender(QWidget *parent = 0);
~Sender();
private slots:
void on_pushButton_clicked();
private:
Ui::Sender *ui;
QUdpSocket *sender;
};
#endif // SENDER_H//sender.cpp
#include "Sender.h"
#include "ui_Sender.h"
#include <QtNetwork>
Sender::Sender(QWidget *parent) :
QDialog(parent),
ui(new Ui::Sender)
{
ui->setupUi(this);
}
Sender::~Sender()
{
delete ui;
sender=new QUdpSocket(this);
}
void Sender::on_pushButton_clicked()
{
QByteArray datagram="hello world!";
sender->writeDatagram(datagram.data(),datagram.size(),
QHostAddress::Broadcast,4396);
}//main.cpp
#include "Sender.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Sender w;
w.show();
return a.exec();
}