#QT(网络编程-UDP)

1.IDE:QTCreator


2.实验:UDP

不分客户端和服务端


3.记录

(1)做一个UI界面

 (2)编写open按钮代码进行测试(用网络调试助手测试)

 

(3)完善其他功能测试


4.代码

pro

QT       += core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

 widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QUdpSocket>         //
#include <QString>           //
#include <QHostAddress>
QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTQUdpSocket *udpsocket;    //
public:Widget(QWidget *parent = nullptr);~Widget();private slots:void on_open_pb_clicked();void readyRead_slot();void on_close_pb_clicked();void on_send_pb_clicked();private:Ui::Widget *ui;
};
#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>        //
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);udpsocket = new QUdpSocket(this);   //
}Widget::~Widget()
{delete ui;
}void Widget::on_open_pb_clicked()     //打开按钮按下处理函数
{if(udpsocket->bind(ui->local_port->text().toUInt())==true)      //连接成功{QMessageBox::information(this,"提示","连接成功");}else{QMessageBox::critical(this,"警告","连接失败");}connect(udpsocket,SIGNAL(readyRead()),this,SLOT(readyRead_slot()));
}void Widget::readyRead_slot()         //准备读关联函数
{while (udpsocket->hasPendingDatagrams()) {QByteArray array;array.resize(udpsocket->pendingDatagramSize());udpsocket->readDatagram(array.data(),array.size());QString buf;buf=array.data();ui->receive_line->appendPlainText(buf);}
}void Widget::on_close_pb_clicked()         //关闭按钮按下时
{udpsocket->close();
}void Widget::on_send_pb_clicked()          //发送按钮按下时
{quint16 port;QString sendbuff;QHostAddress address;address.setAddress(ui->des_ip->text());      //设置目标IPsendbuff=ui->send_line->text();     //发送内容存入数组port=ui->des_port->text().toUInt();                  //目标端口赋值udpsocket->writeDatagram(sendbuff.toLocal8Bit().data(),sendbuff.length(),address,port);    //udp向指定的IP地址的指定端口发送数据
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/512495.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gazebo平衡车模拟

gazebo和Ros中的平衡车模拟&#xff08;Noetic&#xff09; 控制原理 使用说明 在URDF模型中使用gazebo的 imu 插件获取平衡车姿态从 /joint_state 话题消息获取两轮的速度&#xff0c;相当于电机编码器速度环和直立环使用 串级PID 控制&#xff0c;框图如下&#xff1a;转向环…

PHP+MySQL实现后台管理系统增删改查之够用就好

说明 最近要给博客弄个后台&#xff0c;不想搞得很复杂&#xff0c;有基本的增删改查就够了&#xff0c;到网上找了一圈发现这个不错&#xff0c;很实用&#xff0c;希望可以帮到大家&#xff0c;需要的朋友评论区留下邮箱&#xff0c;我安排发送。 演示效果 项目介绍 本项目…

吴恩达机器学习笔记:第5周-9 神经网络的学习1(Neural Networks: Learning)

目录 9.1 代价函数9.2 反向传播算法9.3 反向传播算法的直观理解 9.1 代价函数 首先引入一些便于稍后讨论的新标记方法&#xff1a; 假设神经网络的训练样本有&#x1d45a;个&#xff0c;每个包含一组输入&#x1d465;和一组输出信号&#x1d466;&#xff0c;&#x1d43f;…

2024大广赛参赛流程分享

自2005年第一届以来&#xff0c;全国大学生广告艺术大赛&#xff08;以下简称大广赛&#xff09;遵循“促进教育改革、启迪智慧、增强能力、提高素质、培养人才”的竞赛宗旨&#xff0c;成功举办了14届15届大赛&#xff0c;共有1857所高校参加&#xff0c;100多万学生提交作品。…

【详识JAVA语言】String类oj练习

1. 第一个只出现一次的字符 class Solution { public int firstUniqChar(String s) {int[] count new int[256];// 统计每个字符出现的次数for(int i 0; i < s.length(); i){count[s.charAt(i)];}// 找第一个只出现一次的字符for(int i 0; i < s.length(); i){if(1 …

生产工厂数据中台解决方案:打造可视化平台,为工业搭建智慧大脑-亿发

制造数据中台是将企业现有的业务软件系统进行整合并打通&#xff0c;形成一套标准模块化框架&#xff0c;然后在此基础上构建一个统一的信息服务和应用平台。数据中台的建设涵盖了诸如 ERP&#xff08;供应链管理&#xff09;、MES&#xff08;制造执行管理&#xff09;、SRM&a…

激光雷达点云数据邻域特征计算理论知识学习

一、数学理论 &#xff08;一&#xff09;SVD奇异值分解&#xff08;Singular value decomposition&#xff09; 奇异值分解是线性代数中一种重要的矩阵分解&#xff0c;在信号处理、统计学等领域有重要应用。奇异值分解在某些方面与对称矩阵或埃尔米特矩阵基于特征向量的对角…

哪些型号的高速主轴适合PCB分板机

在选择适合PCB分板机的高速主轴时&#xff0c;SycoTec品牌提供了丰富的型号选择&#xff0c;主要型号包括4025 HY、4033 AC&#xff08;电动换刀&#xff09;、4033 AC-ESD、4033 DC-T和4041 HY-ESD等。 那么如何选择合适的PCB分板机高速主轴型号呢&#xff1f;在选择适合PCB分…

06. Nginx进阶-Nginx代理服务

proxy代理功能 正向代理 什么是正向代理&#xff1f; 正向代理&#xff08;forward proxy&#xff09;&#xff0c;一个位于客户端和原始服务器之间的服务器。 工作原理 为了从原始服务器获取内容&#xff0c;客户端向代理发送一个请求并指定目标&#xff08;即原始服务器…

VS Code插件之Rainbow Fart,一边写代码妹子一边叫

1、下载Rainbow Fart 2、安装完成后打开这个插件 点击菜单中的“查看”——>命令面板 3、点击授权

数据可视化原理-腾讯-3D热力图

在做数据分析类的产品功能设计时&#xff0c;经常用到可视化方式&#xff0c;挖掘数据价值&#xff0c;表达数据的内在规律与特征展示给客户。 可是作为一个产品经理&#xff0c;&#xff08;1&#xff09;如果不能够掌握各类可视化图形的含义&#xff0c;就不知道哪类数据该用…

Ubantu 18.04 配置固定IP

1.首先在终端里输入命令,将你的网关和ip&#xff0c;记下来 ifconfig 2. 执行命令&#xff1a; sudo gedit /etc/network/interfaces 3.在弹出来的框里输入 auto后面的就是网关&#xff0c;address是你虚拟机的ip&#xff0c;gateway是你的网关ip&#xff0c;netmask是你的子…