关于UPD章节学习的一些感想
课程看到了UDP,
首先了解UDP的原理模型.
服务端,首先是实例QUdpSocket,也就是UDP套接字,然后,需要绑定.绑定一个任意IP地址,分为IPV4和IPV6.自行选择课程中讲解时绑定的是IPV4地址.此处有一个知识点如果此时向网络发送消息,是全网广播,那么就会造成网络的堵塞,
可以建立一个组播joinMulticastGroup(),组播时的地址是D类地址,也就是224.0.0.1-239.255.255.255.参考了一下百度出来的结果:https://blog.csdn.net/qq_37717494/article/details/105529004..然后就是定义一个公共的槽函数,处理收到的信息.在对方发给我们数据时,套接字会自动的触发readyRead().最后,用readDatagram/writeDatagram进行收发操作.
在客户端,不需要绑定,实例化QUdpSocket之后,用readDatagram/writeDatagram进行收发操作.
大致上代码客户端和服务端一样,我自己进行了一点扩展,关于套接字的close(),在最开始进行判断,套接字是否置空,没有置空,就先置空,然后再退出组播,然后关闭套接字,最后将套接字置空,如果已经是空,那就返回.

相应的,在发送信息的时候,要重新实例化套接字.也要进行相应的判断

这样就不会因为连续关闭出现崩溃,和关闭后,无法发送信息.这些都是我自己做的扩展.还有对于发送前,对IP地址和端口的数据检查.我只做了不为空的检查,实现开发时,还要对其格式进行检查,也可以对于编辑框进行输入限定,根据固定的格式输入.
有一个困惑,如果是客户端给服务端发消息,因为服务端进行了绑定和开启了组播,那么服务收到后,可以获取到发送消息的客户端的IP地址和端口号,那么客户端没有发送消息之前,如何获取这个客户端的IP地址和端口呢?是不是说只能客户端先发消息?这些只能待后其学习深 入再查一查资料了.
关于UPD章节学习的一些感想的更多相关文章
- 《C++编程思想》部分章节学习笔记整理
简介 此笔记为<C++编程思想>中部分章节的学习笔记,主要是第15章--多态性和虚函数 的学习笔记,此外还有少量其他章节的内容. 目录 文档:<C++编程思想>
- 《图解HTTP》部分章节学习笔记整理
简介 此笔记为<图解HTTP>中部分章节的学习笔记. 目录 第1章 了解Web及网络基础 第2章 简单的HTTP协议 第4章 返回结果的HTTP状态码 第7章 确保web安全的HTTPS
- 《鸟哥的Linux私房菜》部分章节学习笔记整理
简介 此笔记为<鸟哥的Linux私房菜·基础学习篇>中部分章节的学习笔记. 目录 0 计算机概论 1 Linux是什么与如何学习 2 主机规划与磁盘分区 3 安装CentOS7.x 4 首 ...
- 关于JAVA学习计划和感想
学习计划第一阶段: JAVA语言基础知识.包括异常.IO流.多线程.集合类. 要求:异常------掌握try-catch-finally的使用 IO流------掌握字 ...
- Unity3D 新人学习的一点感想
想到那里写到那里吧 1.Unity3D的优点大家都知道:组件化.c#语言.可见即所得. 当初刚开始学习的是cocos2dx,c++的货,觉得还是写的不错的,也是国人开发的,真的代码很容易懂,直接看引擎 ...
- 学习EtherCAT的感想
第一次进入到自动化领域,接触的第一个项目就是EtherCAT的测试.初次接触以太网,有一点茫然,百度看了很多关于EtherCAT的介绍,看了一些相关的论文.EtherCAT的资料很多:ETG1000. ...
- 20155324王鸣宇安装虚拟机+初次学习Linux的感想20155324
安装Linux系统 这是最后一次预备作业,但不是最后一次作业.当然要认真对待,在这个除旧迎新的日子里.认真的花了一个下午的时间专研学习了如何安装Linux系统.通过学习了基于VirtualBox虚拟机 ...
- 关于C语言学习的一些感想(初学者)
C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低 ...
- CMAKE 教程前两章节学习
原文 https://cmake.org/cmake-tutorial/ 以下是一个循序渐进的教程,它覆盖了CMAKE帮助改进的通常的构建系统的话题.许多话题在<掌握CMAKE>(< ...
- 《Lucene in Action 第二版》第4章节 学习总结 -- Lucene中的分析
通过第四章的学习,可以了解lucene的分析过程是怎样的,并且可以学会如何使用lucene内置分析器,以及自定义分析器.下面是具体总结 1. 分析(Analysis)是什么? 在lucene中,分析就 ...
随机推荐
- 慢SQL
慢SQL 目录 慢SQL 一.慢SQL概念 2.参数 3.配置 3.1.slow_query_log 3.2.slow_query_log_file 3.3.long_query_time 3.4.l ...
- EPLAN部件库汇总贴转
经常看到网友求EPLAN部件库,授人以鱼不如授人以渔,大可不必把所有部件装上,比如软件自带的部件库,我都弃之不用,新建一个部件库,把工作中经常要用到的部件慢慢添加进去.慢慢的你会发现:画图效率越来越高 ...
- dvwa sql盲注教程
原文地址:https://www.jianshu.com/p/757626cec742 一.DVWA-SQL Injection(Blind)测试分析 SQL盲注 VS 普通SQL注入: 普通SQL注 ...
- PyMySQL创建
title: PyMySQL创建 author: 杨晓东 permalink: PyMySQL创建 date: 2021-10-02 11:27:04 categories: - 投篮 tags: - ...
- Background Suppression Network for Weakly-supervised Temporal Action Localization概述
0. 前言 相关资料: arxiv github 论文解读1,论文解读2 论文基本信息: 领域:弱监督时序行为定位 发表时间:AAAI 2020(2019.11.22) 1.针对的问题 弱监督视频动作 ...
- 供配电一次测 PT柜 解释
文章来源: PT柜_百度百科 (baidu.com) 视频介绍 很多电工不清楚的高压PT柜,老电工带你了解工作原理和作用_搜狐汽车_搜狐网 (sohu.com) 很多电工怕PT柜,今天电气成套设计实 ...
- Mocha and Stars
Mocha and Stars 题意 给定 \(n,m\) ,问符合下定条件的数列有多少个: 对于\(a_i(1\le i\le n)\),\(a_i\in [l_i,r_i]\cap \mathbb ...
- Windows日常快捷键
Windows: 环境变量: Win+R,--> sysdm.cpl 计算器: Win+R,-->calc 服务:Win+R,-->services.msc 远程:Win+R,--& ...
- js处理树形数组扁平化
// 树形数组扁平化 const extractTree = (data: TagsParams[]) => { if (!data.length) return []; const l ...
- esxi 6.7手动安装阵列卡驱动()2023-01.03
一.登录vmware后台在兼容性列表里面查找驱动,https://www.vmware.com/resources/compatibility/search.php 二. 下载对应的驱动https:/ ...