服务器拖了一个显示框,客户端拖了一个输入框。
客户端:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QUdpSocket>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle("Udp cli");
}
MainWindow::~MainWindow()
{
delete ui;
}
int32_t MainWindow::send()
{
auto uSocket = new QUdpSocket;
QString sendText=ui->textEdit->toPlainText();
auto ret = uSocket->writeDatagram(sendText.toLatin1(),QHostAddress::Broadcast,8888);
qDebug()<<"ret = "<<ret;
return 0;
}
void MainWindow::on_pushButton_clicked()
{
send();
ui->textEdit->setPlainText("");
}
服务器1:
#include "cli.h"
#include "ui_cli.h"
#include<QUdpSocket>
#include<QDebug>
cli::cli(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::cli)
{
ui->setupUi(this);
this->setWindowTitle("Udp server1");
auto m_pUdpClient = new QUdpSocket;
m_pUdpClient->bind(8888,QUdpSocket::ShareAddress);
connect(m_pUdpClient,&QUdpSocket::readyRead,this,[=](){
while (m_pUdpClient->hasPendingDatagrams()) {
QByteArray datagram;
datagram.resize(static_cast<int>(m_pUdpClient->pendingDatagramSize()));
m_pUdpClient->readDatagram(datagram.data(),datagram.size());
datagram.append('\n');
qDebug()<<datagram;
ui->textBrowser->insertPlainText(datagram);
}
});
}
cli::~cli()
{
delete ui;
}
服务器2:
#include "cli.h"
#include "ui_cli.h"
#include<QUdpSocket>
cli::cli(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::cli)
{
ui->setupUi(this);
this->setWindowTitle("Udp server2");
auto m_pUdpClient = new QUdpSocket;
m_pUdpClient->bind(QHostAddress("192.168.42.130"),8888,QUdpSocket::ShareAddress);
connect(m_pUdpClient,&QUdpSocket::readyRead,this,[=](){
while (m_pUdpClient->hasPendingDatagrams()) {
QByteArray datagram;
datagram.resize(static_cast<int>(m_pUdpClient->pendingDatagramSize()));
m_pUdpClient->readDatagram(datagram.data(),datagram.size());
datagram.append('\n');
ui->textBrowser->insertPlainText(datagram);
}
});
}
cli::~cli()
{
delete ui;
}
结果如下:
客户端发消息,两个服务器均能收到