QT 网络编程(UDP版本)
QT的UdpSocket接收消息使用原则
第一步:new一个UdpSocket
第二步:调用UdpSocket的bind方法,同时指定端口号
第三步:使用connect将接收消息函数和UdpSocket对象做关联
第四步:在接受消息槽函数当中调用readDatagram接收消息
接收消息
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QUdpSocket>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();void mydatasend();
private:QUdpSocket *udpsocket;
private slots:void mydatarecv();
};#endif // WIDGET_H
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
#include "widget.h"
#include <QHostAddress>
#include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent)
{udpsocket=new QUdpSocket(this);/*指定绑定端口号,接收消息必须绑定端口号,发送消息则不需要绑定*/udpsocket->bind(8080); /*取消绑定端口号使用:udpsocket->close()方法*//*readyRead()表示有消息到来这个信号*/connect(udpsocket,SIGNAL(readyRead()),this,SLOT(mydatarecv()));
}void Widget::mydatarecv()
{char buf[1024]={0};/*判断是否有消息*/while(udpsocket->hasPendingDatagrams()){udpsocket->readDatagram(buf,sizeof(buf));QMessageBox::information(this,"消息",buf);memset(buf,0,sizeof(buf));}
}void Widget::mydatasend()
{//
}Widget::~Widget()
{}
发送消息
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QUdpSocket>
#include <QPushButton>
#include <QLineEdit>
#include <QLabel>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = 0);~Widget();
private:QUdpSocket *udpsocket;QPushButton *btn1;QLineEdit *edit1;QLineEdit *edit2;QLabel *label1;void mysenddata();
private slots:void btn_click();
};#endif // WIDGET_H
#include "widget.h"
#include <QHostAddress>
#include <QGridLayout>
#include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent)
{udpsocket=new QUdpSocket(this);btn1=new QPushButton(tr("点击"));edit1=new QLineEdit();edit2=new QLineEdit();label1=new QLabel(tr("目标IP"));QGridLayout *lay1=new QGridLayout(this);lay1->addWidget(btn1,1,1);lay1->addWidget(edit1,1,0);lay1->addWidget(edit2,0,1);lay1->addWidget(label1,0,0);connect(btn1,SIGNAL(clicked()),this,SLOT(btn_click()));
}Widget::~Widget()
{}void Widget::btn_click()
{mysenddata();
}void Widget::mysenddata()
{QString stext=edit1->text();QHostAddress *serverip=new QHostAddress();//获取目标IP地址QString ipstr=edit2->text();if(ipstr.isEmpty()){QMessageBox::critical(this,"错误信息","ip地址不可以为空!");return;}serverip->setAddress(ipstr);char buf[1024]={0};strncpy(buf,stext.toStdString().data(),sizeof(buf));udpsocket->writeDatagram(buf,strlen(buf),*serverip,8080);delete serverip;edit1->clear();
}
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
QT 网络编程(UDP版本)相关推荐
- Qt网络编程-简易版UDP组播通信入门Demo(5)
Qt网络编程-简易版UDP组播通信入门Demo(5)
- Qt网络编程——TCP
Qt网络编程--TCP 1. 概念 2. 服务器 3. 客户端 4. TCP服务器和客户端互传文件 5. 资源下载 1. 概念 TCP(Transmission Control Protocol, 传 ...
- qt网络编程之使用cookie和ssl
文章目录 所使用的Qt版本:5.14.0 接收Cookies: 发送Cookies: 答案是:有7个(有多少个等号就有多少个cookie,每个cookie用 ; 分隔开来) 代码如下: 参考: 简 述 ...
- 第十四章:Qt网络编程
回顾: 第一章:Qt的概述 第二章:在Ubuntu编写第一个Qt程序 第三章:Qt的字符串和字符编码 第四章:Qt的信号和槽 第五章:Qt容器窗口(父窗口) 第六章:面向对象的Qt编程 第七章:Qt设 ...
- Qt网络编程概述(一)
分享主题 Qt网络编程概述(一) Qt网络编程之QTCPSocket和QTCPServer实例(二) Qt网络编程之QUdpSocket实例(三) Qt网络编程概述 QtNetWork模块提供了若干类 ...
- QT:Qt 网络编程基础
Qt 网络编程基础 1 )网络协议层次 // linux/unix ---> 4 层 OSI ---> 7 层 应用层(应用层.表示层.会话层) 传输层(传输层) // TCP/IP ...
- [Qt教程] 第31篇 网络(一)Qt网络编程简介
[Qt教程] 第31篇 网络(一)Qt网络编程简介 楼主 发表于 2013-8-28 17:04:17 | 查看: 515| 回复: 0 Qt网络编程简介 版权声明 该文章原创于作者yafeilin ...
- Qt网络编程之实例一GET方式
看了两天的Qt网络编程,其实主要就是看了看QNetworkAccessManager.QNetworkRequest和QNetworkReply这三个类的主要内容.在之前,Qt网络编程主要是使用QHt ...
- qt android 网络编程实例,QT网络编程Tcp下C/S架构的即时通信实例
先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include # ...
- Qt网络编程实战之HTTP服务器-安晓辉-专题视频课程
Qt网络编程实战之HTTP服务器-30196人已学习 课程介绍 设计了一个实用的HTTP服务器,基于Qt的网络框架实现.先详细介绍Qt的网络.IO.线程..自定义事件.配置文件等类库的 ...
最新文章
- 如何在国内上medium_在Medium上写作的风格指南
- 卷积、相关(matlab)
- 使用sql语句,查询 mysql 的安装地址
- 区块链BaaS云服务(17)纸贵科技Z-BaaS“数据治理”
- 刷新纪录 | 74.7 秒训练完 ImageNet!2048 GPU 暴力出奇迹
- Asianux Server 3.0安装截图
- Win下通过 Navica t连接Ubuntu下MySQL数据库
- 并行、并发,两者的区别
- C++ 中的三种继承public , protected, private
- SQL SERVER 内存分配及常见内存问题(1)——简介
- Java 读取txt文件,读取结果保存到数据库
- 笔记︱范数正则化L0、L1、L2-岭回归Lasso回归(稀疏与特征工程)
- [转]Git详解之三 Git分支
- 小规模企业如何做账 e-mail_小规模公司自学做账方法
- 漫步STL-string in [Cpp] v.s. String in [Java]
- 爬取虾米音乐flac高品质下载
- 关于阿里云你了解多少
- org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatt
- js 万年历农历转阳历 方法_JS实现带阴历的日历功能详解
- Go实战--golang中使用echo框架中JSONP(labstack/echo)