可以做结构式的网站,宣传片视频如何制作,程序员怎么用wordpress,毕业答辩ppt模板免费下载网站目录 一.widget.ui界面设计
二.创建UDP通信
1.pro文件添加network模块。
2.添加对应头文件
3.定义槽函数#xff0c;即与 UI 中的按钮点击事件相关联的函数
4.定义类的私有成员
5.关闭按钮
6.信息处理
7.绑定端口
8.发送信息
9.效果图
三.代码演示
1.widget.h
2.…目录 一.widget.ui界面设计
二.创建UDP通信
1.pro文件添加network模块。
2.添加对应头文件
3.定义槽函数即与 UI 中的按钮点击事件相关联的函数
4.定义类的私有成员
5.关闭按钮
6.信息处理
7.绑定端口
8.发送信息
9.效果图
三.代码演示
1.widget.h
2.widget.cpp 一.widget.ui界面设计
拖拽左侧Label控件到页面中分别显示Label对方IPLabel对方端口。
拖拽左侧Push Button控件到页面中分别为 发送关闭两个按钮。在右侧将其objectName 分别设置为 sendButton ; closeButton 。
拖拽左侧QLineEdit控件到页面中,在右侧将其objectName 设置为lineIp和lienProt,目的是输入对方IP和对方端口号。
拖拽左侧QTextEdit控件到页面中,在右侧将其objectName 设置为textEditRead和textEditWrite,目的是读取对方发来的信息和输入自己想要发送的信息。 二.创建UDP通信
1.pro文件添加network模块。 2.添加对应头文件 #include QUdpSocket C 中用于引入 Qt 网络库中的 QUdpSocket 类的预处理指令。QUdpSocket 是 Qt 用于实现用户数据报协议 (UDP) 的类。UDP 是一种无连接的、不可靠的传输层协议通常用于实时数据传输如游戏、流媒体和网络广播等场景因为它提供了低延迟和低开销的通信。
#include QHostAddressQHostAddress 类是 Qt Network 模块中的一个类用于表示 IP 地址和主机名。它提供了一种方便的方式来处理 IP 地址支持 IPv4 和 IPv6 地址。 3.定义槽函数即与 UI 中的按钮点击事件相关联的函数 on_closeButton_clicked()当关闭按钮被点击时调用。on_sendButton_clicked()当发送按钮被点击时调用。 4.定义类的私有成员 QUdpSocket *socket;一个 QUdpSocket 对象用于网络通信。 5.关闭按钮 6.信息处理 7.绑定端口 8.发送信息 9.效果图 三.代码演示
1.widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include QUdpSocket
#include QWidget
#include QHostAddressnamespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent 0);~Widget();void dealMsg();private slots:void on_closeButton_clicked();void on_sendButton_clicked();private:Ui::Widget *ui;QUdpSocket* udpSocket;
};#endif // WIDGET_H2.widget.cpp
#include widget.h
#include ui_widget.hWidget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui-setupUi(this);udpSocket new QUdpSocket(this);udpSocket-bind(QHostAddress::Any,9000);connect(udpSocket,QUdpSocket::readyRead,this,Widget::dealMsg);setWindowTitle(端口: 9000);}Widget::~Widget()
{delete ui;
}void Widget::on_closeButton_clicked()
{close();
}void Widget::on_sendButton_clicked()
{if(nullptr ui-lineIp || nullptr ui-lienProt){return;}QString ip ui-lineIp-text();quint16 port ui-lienProt-text().toInt();//读取编辑区内容if(nullptr ui-textEditWrite){return;}QString strui-textEditWrite-toPlainText();//写入套接字udpSocket-writeDatagram(str.toUtf8(),QHostAddress(ip),port);}void Widget::dealMsg()
{//定义了一个字符数组buf大小为1024个字符。数组初始化为0这通常用于确保数组在使用前被正确初始化char buf[1024] {0};//QHostAddress 是Qt库中用于表示IP地址的类。quint16 是一个16位无符号整数通常用于表示端口号。QHostAddress ip;quint16 port;//readDatagram 是一个从UDP套接字读取数据的方法。它接受四个参数//第一个参数buf用于存储读取到的数据的缓冲区。//第二个参数sizeof(buf)指定缓冲区的大小这里是1024个字符。//第三个参数ip用于接收读取到的IP地址通过引用传递以修改变量的值。//第四个参数port用于接收读取到的端口号同样通过引用传递。//接受信息qint64 len udpSocket-readDatagram(buf,sizeof(buf),ip,port);if(len0){//显示QString str QString([%1:%2]%3).arg(ip.toString()).arg(port).arg(buf);ui-textEditRead-append(str);}}