Qt开发UDP
一、单播
1、声明udp对象
QUdpSocket* udpClient;
2、new出对象
udpClient = new QUdpSocket(this);
3、分配本地地址(如果不分配,使用系统自动分配的),设置接收槽函数
udpClient.bind("192.168.1.1”,8080);
QObject::connect(this->udpClient,SIGNAL(readyRead()),this,SLOT(rcvData()));
4、接收函数
void Udp::rcvData()
{
if(this->udpClient->pendingDatagramSize() == 0)
return;
QByteArray ba;
ba.resize(udpClient->pendingDatagramSize());
QHostAddress tempHost("");
quint16 port = 0;
this->udpClient->readDatagram(ba.data(),udpClient->pendingDatagramSize(),&tempHost,&port);
}
5、发送
void Udp::on_pushButton_3_clicked()
{
if(j == this->udpClient->writeDatagram(tempChar,j,ipAddress,port))
{
qDebuf()<<"发送成功"
}
}
6、关闭
udpClient.close();
ps:1、udp套接字bind成功之后,状态是BoundState,close之后是UnconnectedState;
2、bind是将一个ip和地址绑定,并使socket与这两个绑定在一起,通常是udp使用此函数;connectToHost是套接字连接至主机ip和端口,通常是tcp客户端连接至服务器使用此函数;
3、每当udp的readyRead信号发出来后,一定要使用接收函数把数据接收了,否则下次来数据的时候不会发出此信号。
二、组播
组播:假设一个局域网内有多个计算机,每个计算机有一个IP,定义一个组播IP,把局域网中的某些计算机加入此组播IP,然后发送端向这个组播IP发送数据就完成了组播过程。
三、广播
向255:255:255:255发送
ps:路由器会过滤多播(组播和广播)
PS:开发流程

Qt开发UDP的更多相关文章
- QT开发pjsip的VOIP,A8平台运行
QT开发pjsip的VOIP 开发环境 平台:A8 环境:Linux-3.0.8 实现功能:使用QT开发VOIP进行初始化.拨号.挂起 测试工具:minisipserver服务器 效果 界面: min ...
- 使用 Qt 获取 UDP 数据并显示成图片
一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...
- win使用MSYS2安装Qt开发环境
原文链接 MSYS2 下载地址: pacman的具体用法 有pacman的具体使用方法.我们首先对系统升级 我们首先对系统升级 pacman -Syu 就会检测整个系统可以升级的组件,并自动下载安装, ...
- 细数Qt开发的各种坑(欢迎围观)
1:Qt的版本多到你数都数不清,多到你开始怀疑人生.从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC.MSVC版本还必须安装对应的VS2 ...
- 用Qt开发第一个Hello World程序
配置好Qt的环境变量之后,我们才可以进行下面的通过终端来使用Qt开发这个第一个程序 因为Qt的文件路径不能有中文否则会报错,所以一般都把工程文件都建立在根目录 我们创建的Qt程序包含两个部分:1.GU ...
- 第一章 搭建Qt开发环境
第一章 搭建Qt开发环境 1.到http://download.qt-project.org/archive/上下载Qt的源码包.我下载的是qt-everywhere-opensource-src-4 ...
- Ubuntu 12.04下搭建Qt开发环境
http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...
- 基于QT开发的第三方库
基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库 目录(?)[+] 文章来源:http://blog.csdn.net ...
- 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具
老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...
随机推荐
- poj 1041(欧拉回路+输出字典序最小路径)
题目链接:http://poj.org/problem?id=1041 思路:懒得写了,直接copy吧:对于一个图可以从一个顶点沿着边走下去,每个边只走一次,所有的边都经过后回到原点的路.一个无向图存 ...
- day17 内置函数
一.内置函数接下来,我们就一起来看看python里的内置函数 分类图 1.作用域函数 基于字典的形式获取局部变量和全局变量 globals()——获取全局变量的字典 locals()——获取执行本方法 ...
- iOS内存管理之浅见
当我们用alloc.new.copy创建对象时,对象的应用计数为1,当把这个对象retain时.引用计数+1.当对这个对象发送release消息时,引用计数-1,当对象的引用计数为0时,系统回收这个对 ...
- Apache JMeter录制HTTPS的方法及测试中常见问题解决
Jmeter录制https请求,录制不到的常见解决方案: cmd java -version 显示为1.7 以jdk1.7为例,打开\Java\jre7\lib\security 中的,java.se ...
- jpofiler监控JVM
1.官方下载地址,选择自己想要的版本 https://www.ej-technologies.com/download/jprofiler/version_92 2.分为linux服务端.window ...
- Swift学习笔记(一):No such module 'Cocoa'
在xcode中创建一个Playground文件, 进行导包操作 ,import Cocoa 却提示No such module 'Cocoa' 原因是该Playground文件的platform 设置 ...
- 01-K Code
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission ...
- A Simple Problem with Integers(线段树)
F - A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:% ...
- JS实现过一段时间后清理数据(以Lable为例)
<script type="text/javascript"> var t function cleaData() { t = setTimeout(syc, 3000 ...
- MySQL 5.7.9修改root密码以及新特性
原文地址:http://www.cnblogs.com/Gbeniot/p/5156633.html