一、单播

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的更多相关文章

  1. QT开发pjsip的VOIP,A8平台运行

    QT开发pjsip的VOIP 开发环境 平台:A8 环境:Linux-3.0.8 实现功能:使用QT开发VOIP进行初始化.拨号.挂起 测试工具:minisipserver服务器 效果 界面: min ...

  2. 使用 Qt 获取 UDP 数据并显示成图片

    一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...

  3. win使用MSYS2安装Qt开发环境

    原文链接 MSYS2 下载地址: pacman的具体用法 有pacman的具体使用方法.我们首先对系统升级 我们首先对系统升级 pacman -Syu 就会检测整个系统可以升级的组件,并自动下载安装, ...

  4. 细数Qt开发的各种坑(欢迎围观)

    1:Qt的版本多到你数都数不清,多到你开始怀疑人生.从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC.MSVC版本还必须安装对应的VS2 ...

  5. 用Qt开发第一个Hello World程序

    配置好Qt的环境变量之后,我们才可以进行下面的通过终端来使用Qt开发这个第一个程序 因为Qt的文件路径不能有中文否则会报错,所以一般都把工程文件都建立在根目录 我们创建的Qt程序包含两个部分:1.GU ...

  6. 第一章 搭建Qt开发环境

    第一章 搭建Qt开发环境 1.到http://download.qt-project.org/archive/上下载Qt的源码包.我下载的是qt-everywhere-opensource-src-4 ...

  7. Ubuntu 12.04下搭建Qt开发环境

    http://download.qt.io/official_releases/qt/ Ubuntu 环境下Gtk与Qt编译环境安装与配置(系统环境是Ubuntu 12.04) 1.配置基础开发环境G ...

  8. 基于QT开发的第三方库

    基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库   目录(?)[+]   文章来源:http://blog.csdn.net ...

  9. 老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具

    老李分享:使用 Python 的 Socket 模块开发 UDP 扫描工具 poptest是业内唯一的测试开发工程师培训机构,测试开发工程师主要是为测试服务开发测试工具,在工作中要求你做网络级别的安全 ...

随机推荐

  1. jvm(12)-java内存模型与线程

    [0]README 0.1)本文部分文字描述转自“深入理解jvm”,旨在学习“java内存模型与线程” 的基础知识:   [1]概述 1)并发处理的广泛应用是使得 Amdahl 定律代替摩尔定律称为计 ...

  2. Unity官方发布热更新方案性能对照

    孙广东  2016.3.11 Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda •  什么是热更新 •  为何要热更新 •  怎样在iOS 上对 ...

  3. Android实现短信监听并且转发到指定的手机号,转发后不留痕

    转载:http://blog.csdn.net/swqqcs/article/details/7252419 通过这些代码也可以对远程手机实现短信控制.有兴趣的可以自己改一下,说一下简单的原理,要实现 ...

  4. 解决OV系列摄像头寄存器读数据无法收到的问题

    最近工作中接了一款OV7725的sensor,由于平台已经接过很多的家的sensor也就没有太当回事.问题出现的很奇怪,再看了 register map后基本确定了要尽心register  R/W测试 ...

  5. 如何通过Mac 下的SVN拉取代码

    背景:今天入职了一家新单位,用的svn,我之前一直用的win下的git和svn,然后我现在用自己的mac开发,所以有了标题的疑问 博文由来:看了几个博客写的都很繁琐,看半天才能解决我的疑问,所以自己写 ...

  6. (转)gethostbyname() -- 用域名或主机名获取IP地址

    struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等.传出值, ...

  7. POJ3259(虫洞)

    题目大意:给你一张图,先输入m条双向边(权值为正),再输入w条单向边(权值为负),判断是否有负环 题目思路:bellman-ford或者SPFA都行,我用的是SPFA(因为和POJ1860类似,就不加 ...

  8. 【BZOJ4821】[Sdoi2017]相关分析 线段树

    [BZOJ4821][Sdoi2017]相关分析 Description Frank对天文学非常感兴趣,他经常用望远镜看星星,同时记录下它们的信息,比如亮度.颜色等等,进而估算出星星的距离,半径等等. ...

  9. 《从零开始学Swift》学习笔记http(Day1)——我的第一行Swift代码

    Swift 2.0学习笔记(Day1)——我的第一行Swift代码 原创文章,欢迎转载.转载请注明:关东升的博客 当第一次看到下面代码时我石化了,这些代码是什么东东?单词拼出来的? import Fo ...

  10. 基于HttpClient、Jsoup的爬虫获取指定网页内容

    不断尝试,发现越来越多有趣的东西,刚刚接触Jsoup感觉比正则表达式用起来方便,但也有局限只适用HTML的解析. 不能尝试运用到四则运算中(工作室刚开始联系的小程序). 在原来写的HttpClient ...