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版本)相关推荐

  1. Qt网络编程-简易版UDP组播通信入门Demo(5)

    Qt网络编程-简易版UDP组播通信入门Demo(5)

  2. Qt网络编程——TCP

    Qt网络编程--TCP 1. 概念 2. 服务器 3. 客户端 4. TCP服务器和客户端互传文件 5. 资源下载 1. 概念 TCP(Transmission Control Protocol, 传 ...

  3. qt网络编程之使用cookie和ssl

    文章目录 所使用的Qt版本:5.14.0 接收Cookies: 发送Cookies: 答案是:有7个(有多少个等号就有多少个cookie,每个cookie用 ; 分隔开来) 代码如下: 参考: 简 述 ...

  4. 第十四章:Qt网络编程

    回顾: 第一章:Qt的概述 第二章:在Ubuntu编写第一个Qt程序 第三章:Qt的字符串和字符编码 第四章:Qt的信号和槽 第五章:Qt容器窗口(父窗口) 第六章:面向对象的Qt编程 第七章:Qt设 ...

  5. Qt网络编程概述(一)

    分享主题 Qt网络编程概述(一) Qt网络编程之QTCPSocket和QTCPServer实例(二) Qt网络编程之QUdpSocket实例(三) Qt网络编程概述 QtNetWork模块提供了若干类 ...

  6. QT:Qt 网络编程基础

    Qt 网络编程基础 1 )网络协议层次 // linux/unix ---> 4 层  OSI ---> 7 层  应用层(应用层.表示层.会话层)  传输层(传输层) // TCP/IP ...

  7. [Qt教程] 第31篇 网络(一)Qt网络编程简介

    [Qt教程] 第31篇 网络(一)Qt网络编程简介 楼主  发表于 2013-8-28 17:04:17 | 查看: 515| 回复: 0 Qt网络编程简介 版权声明 该文章原创于作者yafeilin ...

  8. Qt网络编程之实例一GET方式

    看了两天的Qt网络编程,其实主要就是看了看QNetworkAccessManager.QNetworkRequest和QNetworkReply这三个类的主要内容.在之前,Qt网络编程主要是使用QHt ...

  9. qt android 网络编程实例,QT网络编程Tcp下C/S架构的即时通信实例

    先写一个客户端,实现简单的,能加入聊天,以及加入服务器的界面. #ifndef TCPCLIENT_H #define TCPCLIENT_H #include #include #include # ...

  10. Qt网络编程实战之HTTP服务器-安晓辉-专题视频课程

    Qt网络编程实战之HTTP服务器-30196人已学习 课程介绍         设计了一个实用的HTTP服务器,基于Qt的网络框架实现.先详细介绍Qt的网络.IO.线程..自定义事件.配置文件等类库的 ...

最新文章

  1. 如何在国内上medium_在Medium上写作的风格指南
  2. 卷积、相关(matlab)
  3. 使用sql语句,查询 mysql 的安装地址
  4. 区块链BaaS云服务(17)纸贵科技Z-BaaS“数据治理”
  5. 刷新纪录 | 74.7 秒训练完 ImageNet!2048 GPU 暴力出奇迹
  6. Asianux Server 3.0安装截图
  7. Win下通过 Navica t连接Ubuntu下MySQL数据库
  8. 并行、并发,两者的区别
  9. C++ 中的三种继承public , protected, private
  10. SQL SERVER 内存分配及常见内存问题(1)——简介
  11. Java 读取txt文件,读取结果保存到数据库
  12. 笔记︱范数正则化L0、L1、L2-岭回归Lasso回归(稀疏与特征工程)
  13. [转]Git详解之三 Git分支
  14. 小规模企业如何做账 e-mail_小规模公司自学做账方法
  15. 漫步STL-string in [Cpp] v.s. String in [Java]
  16. 爬取虾米音乐flac高品质下载
  17. 关于阿里云你了解多少
  18. org.apache.hadoop.hdfs.qjournal.client.QuorumException: Unable to check if JNs are ready for formatt
  19. js 万年历农历转阳历 方法_JS实现带阴历的日历功能详解
  20. Go实战--golang中使用echo框架中JSONP(labstack/echo)

热门文章

  1. 数学建模常用模型21:BP神经网络(三层)
  2. 精益开发实战:用看板管理大型项目
  3. 使用 Hangouts Chat 以异步消息形式发送提醒和通知…
  4. c语言程序设计编程题库,C语言程序设计习题库.doc
  5. HFSS参数化建模教程
  6. 显示器接口有几种 显示器各种接口知识扫盲
  7. 人力资源简单工作流程管理系统
  8. 彻底解决:Apache启动问题—(OS 10022)提供了一个无效的参数。
  9. 中学生成绩查询c语言编程,c语言学生成绩管理系统
  10. 又有一家世界500强公司计划裁员了,裁员2600人