当前位置 : 主页 > 网络编程 > 其它编程 >

QTUDP练习

来源:互联网 收集:自由互联 发布时间:2023-07-02
QTUDP练习一、简述简单的基于UDP协议的双向通信练习。例子打包链接:https:pan.baidu.coms1k87goWpadgdHvQRTAm_2-Q提取 QT UDP练习 一、简述       简单的基于UDP协议的双向通信 练习。       例子
QTUDP练习一、简述简单的基于UDP协议的双向通信练习。例子打包链接:https:pan.baidu.coms1k87goWpadgdHvQRTAm_2-Q提取

QT UDP练习

一、简述

      简单的基于UDP协议的双向通信 练习。

      例子打包链接: https://pan.baidu.com/s/1k87goWpadgdHvQRTAm_2-Q 提取码: ug7e 

二、效果

三、工程结构

四、源文件

Udp1.pro文件

QT widgets gui networkHEADERS \udp1.hSOURCES \main.cpp \udp1.cpp

main.cpp文件

#include #include int main(int argc,char* argv[]){QApplication app(argc,argv);Udp1 udp;udp.setWindowFlags(Qt::WindowCloseButtonHint);//只留下关闭按钮udp.setWindowTitle("UDP1[127.0.0.1:10001]");//设置窗体标题udp.show();//show出窗体return app.exec();}

udp1.cpp文件

#include "udp1.h"Udp1::Udp1(QWidget *parent) :QDialog(parent){//创建行文本编辑框_lineEdit new QLineEdit(this);//设置位置、大小_lineEdit->setGeometry(10,10,130,20);//创建发送按钮QPushButton *sendBtn new QPushButton("发送",this);//设置位置、大小sendBtn->setGeometry(150,10,50,20);//创建文本浏览框_text new QTextBrowser(this);//设置位置、大小_text->setGeometry(10,40,190,200);// 创建udpsocket_udp new QUdpSocket;//绑定端口_udp->bind(10001);//并连接槽函数用来接收数据connect(_udp, SIGNAL(readyRead()),this, SLOT(MyRecive()));//连接发送信息的槽函数connect(sendBtn,SIGNAL(clicked()),this,SLOT(MySend()));}void Udp1::MyRecive(){while(_udp->hasPendingDatagrams()){//获取收到的信息大小quint32 datagramSize _udp->pendingDatagramSize();//用来存储接收到的信息QByteArray buf(datagramSize, 0);//发送方IPQHostAddress addres;//发送方端口quint16 port;//接收信息并存放到buf中_udp->readDatagram(buf.data(), buf.size(),//将收到的信息追加展示_text->append("["addres.toString()":"QString::number(port)"]"buf);}}void Udp1::MySend(){//获取要发送的信息QString msg _lineEdit->text();//以QByteArray格式将信息发送给主机IP为127.0.0.1的10002号端口if(!msg.isEmpty()){_udp->writeDatagram(msg.toUtf8(), QHostAddress("127.0.0.1"), 10002);}}

Udp2.pro文件

QT widgets gui networkHEADERS \udp2.hSOURCES \udp2.cpp \main.cpp

udp2.h文件

#ifndef UDP2_H#define UDP2_H#include #include #include #include #include class Udp2 : public QDialog{Q_OBJECTpublic:explicit Udp2(QWidget *parent 0);signals:public slots:void MyRecive();//接收信息void MySend();//发送信息private:QUdpSocket* _udp;//通信socketQLineEdit* _lineEdit;//行文本编辑框编写要发送的信息QTextBrowser* _text;//展示接收到的信息};#endif // UDP2_H

main.cpp文件

#include #include int main(int argc,char* argv[]){QApplication app(argc,argv);Udp2 udp;udp.setWindowFlags(Qt::WindowCloseButtonHint);//只留下关闭按钮udp.setWindowTitle("UDP2[127.0.0.1:10002]");//设置窗体标题udp.show();//show出窗体return app.exec();}

udp2.cpp文件

#include "udp2.h"Udp2::Udp2(QWidget *parent) :QDialog(parent){//创建行文本编辑框_lineEdit new QLineEdit(this);//设置位置、大小_lineEdit->setGeometry(10,10,130,20);//创建发送按钮QPushButton *sendBtn new QPushButton("发送",this);//设置位置、大小sendBtn->setGeometry(150,10,50,20);//创建文本浏览框_text new QTextBrowser(this);//设置位置、大小_text->setGeometry(10,40,190,200);// 创建udpsocket_udp new QUdpSocket;//绑定端口_udp->bind(10002);//并连接槽函数用来接收数据connect(_udp, SIGNAL(readyRead()),this, SLOT(MyRecive()));//连接发送信息的槽函数connect(sendBtn,SIGNAL(clicked()),this,SLOT(MySend()));}void Udp2::MyRecive(){while(_udp->hasPendingDatagrams()){//获取收到的信心大小quint32 datagramSize _udp->pendingDatagramSize();//用来存储接收到的信息QByteArray buf(datagramSize, 0);//发送方IPQHostAddress addres;//发送方端口quint16 port;//接收信息并存放到buf中_udp->readDatagram(buf.data(), buf.size(),//将收到的信息追加展示_text->append("["addres.toString()":"QString::number(port)"]"buf);}}void Udp2::MySend(){//获取要发送的信息QString msg _lineEdit->text();//以QByteArray格式将信息发送给主机IP为127.0.0.1的10001号端口if(!msg.isEmpty()){_udp->writeDatagram(msg.toUtf8(), QHostAddress("127.0.0.1"), 10001);}}

 

【文章转自:香港多ip服务器 http://www.558idc.com/hkzq.html提供,感恩】
上一篇:【matlab编程】matlab随机数函数
下一篇:没有了
网友评论