分享

Qt的Udp编程总结

 ylsnData 2018-02-25
一:首先需在创建的工程目录下添加
QT +=network //引进网络编程内容
​二:服务端的编写
​(1)初始化操作
   udpServer=new QUdpSocket(this); //创建套接字
    udpServer->bind(QHostAddress::Any,8040); //绑定通信端口
    connect(udpServer,SIGNAL(readyRead()),this,SLOT(recvData()));  //连接信号接收函数
​(2)数据接收
//接收数据
    while (udpServer->hasPendingDatagrams())
    {
    QByteArray datagram; //定义接收的数组
    datagram.resize(udpServer->pendingDatagramSize()); //设置接收数组的大小
    udpServer->readDatagram(datagram.data(), datagram.size()); //读取数据
    QString s = datagram.data(); //分离出需要的数据
    ui->plainTextEdit->appendPlainText(s); //数据显示
    }

​源代码:
#include "widget.h"
#include "ui_widget.h"

UdpServer::UdpServer(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    udpServer=new QUdpSocket(this); //创建套接字
    udpServer->bind(QHostAddress::Any,8040); //绑定通信端口
    connect(udpServer,SIGNAL(readyRead()),this,SLOT(recvData()));  //连接信号接收函数
}

UdpServer::~UdpServer()
{
    delete ui;
}
//接收数据的函数
void UdpServer::recvData()
{
    //接收数据
    while (udpServer->hasPendingDatagrams())
    {
    QByteArray datagram; //定义接收的数组
    datagram.resize(udpServer->pendingDatagramSize()); //设置接收数组的大小
    udpServer->readDatagram(datagram.data(), datagram.size()); //读取数据
    QString s = datagram.data(); //分离出需要的数据
    ui->plainTextEdit->appendPlainText(s); //数据显示
    }
}


​三:客户端的编写
​(1),初始化操作
​udpClient=new QUdpSocket(this
);
​(2)发送数据
QString s= "hello test";
   udpClient->writeDatagram(s.toLatin1(), s.length(), QHostAddress::Broadcast, 8040);
​源代码:
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    udpClient=new QUdpSocket(this);  //创建套接字
}

Widget::~Widget()
{
    delete ui;
}
//发送数据的函数
void Widget::on_pushButton_clicked()
{
   QString s= ui->lineEdit->text();
   udpClient->writeDatagram(s.toLatin1(), s.length(), QHostAddress::Broadcast, 8040); //向指定的端口发送数据
}
三:基于Qt5.9的项目源码








    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多