UDP广播

//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();
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值