2.Socket 编程 UDP

1.UDP网络编程

0.背景知识

自实现IP转化

相关函数理解 

IP相关理解

1. V2版本 - DictServer封装版

实现一个简单的英译汉的网络字典

Dict.hpp

dictionary.txt

InetAddr.hpp

• 在 InetAddr 中,重载一下==方便对用户是否是同一个进行比较

Log.hpp

makefile

Mutex.hpp

UdpClient.cc

UdpServer.cc

UdpServer.hpp

2.V3版本 - 简单聊天室

Cond.hpp(条件变量)

InetAddr.hpp

Log.hpp

makefile

Mutex.hpp

Route.hpp

Thread.hpp

ThreadPool.hpp

UdpClient.cc

 udp 是全双工的。既可以读,也可以写,可以同时读写,不会多线程读写的问题.

• 多线程客户端,同时读取和写入

 

UdpServer.cc

UdpServer.hpp

附录1:

附录2:

 UdpServer.cc中3. 网络服务器对象,提供通信功能

附录(杂):
 

基于 IPv4 的 socket 网络编程,sockaddr_in 中的成员 struct in_addr
sin_addr 表示 32 位 的 IP 地址
但是我们通常用点分十进制的字符串表示 IP 地址,以下函数可以在字符串表示 和
in_addr 表示之间转换;
inet_ntoa 这个函数返回了一个 char*, 很显然是这个函数自己在内部为我们申请了一块
内存来保存 ip 的结果. 那么是否需要调用者手动释放呢?
man 手册上说, inet_ntoa 函数, 是把这个返回结果放到了静态存储区. 这个时候不需要
我们手动进行释放
明确提出 inet_ntoa 不是线程安全的函数;

 

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

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

相关文章

数据可视化交互

目录 【实验目的】 【实验原理】 【实验环境】 【实验步骤】 一、安装 pyecharts 二、下载数据 三、实验任务 实验 1:AQI 横向对比条形图 代码说明: 运行结果: 实验 2:AQI 等级分布饼图 实验 3:多城市 AQI…

【MATLAB去噪算法】基于CEEMDAN联合小波阈值去噪算法(第四期)

CEEMDAN联合小波阈值去噪算法相关文献 一、EMD 与 EEMD 的局限性 (1)EMD (经验模态分解) 旨在自适应地将非线性、非平稳信号分解成一系列 本征模态函数 (IMFs),这些 IMFs 从高频到低频排列。 核心问题:模态混合 (Mode Mixing) 同…

大话软工笔记—架构模型

1. 架构模型1—拓扑图 (1)拓扑图概念 拓扑图,将多个软件系统用网络图连接起来的表达方式。 (2)拓扑图分类 总线型结构 比较普遍采用的方式,将所有的系统接到一条总线上。 星状结构 各个系统通过点到…

24-Oracle 23 ai ​Lock-Free Reservations​(无锁列值保留)

数据库领域为了解决ACID的平衡,尝试了各种锁、各种模式, 引擎技术特性、厂家实现方式各放异彩,被各种锁折磨的小伙伴,是不是感同身受。 一、数据库锁 1. 锁的类型与特点 ​全局锁​:锁定整个数据库实例,备…

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding

从零写一个ALSA声卡驱动学习(1)

前言: 本文档描述了如何编写 ALSA(高级 Linux 音频架构)驱动程序。文档主要聚焦于 PCI 声卡的实现。对于其他类型的设备,可能会使用不同的 API。不过,至少 ALSA 的内核 API 是一致的,因此本文档在编写这些驱…

链结构与工作量证明7️⃣:用 Go 实现比特币的核心机制

链结构与工作量证明:用 Go 实现比特币的核心机制 如果你用 Go 写过区块、算过哈希,也大致理解了非对称加密、数据序列化这些“硬核知识”,那么恭喜你,现在我们终于可以把这些拼成一条完整的“区块链”。 不过别急,这一节我们重点搞懂两件事: 区块之间是怎么连接成“链”…

深入理解 React 样式方案

React 的样式方案较多,在应用开发初期,开发者需要根据项目业务具体情况选择对应样式方案。React 样式方案主要有: 1. 内联样式 2. module css 3. css in js 4. tailwind css 这些方案中,均有各自的优势和缺点。 1. 方案优劣势 1. 内联样式: 简单直观,适合动态样式和…

YOLO电力物目标检测训练

最近需要进行电力物检测相关的业务,因此制作了一个电力物数据集,使用YOLO目标检测方法进行实验,记录实验过程如下: 数据集标注 首先需要对电力物相关设备进行标注,这里我们选用labelme进行标注,使用无人机…

从阿里云域名解析异常事件看下域名解析过程

近日阿里云核心域名aliyuncs.com解析异常,涉及众多依赖阿里云服务的网站和应用,故障从发现到修复耗时5个多小时。本文简要分析下整个事件的过程,并分析域名解析的过程,了解根域名服务器在其中的作用,以了解。 1、aliyu…

应用分享 | 精准生成和时序控制!AWG在确定性三量子比特纠缠光子源中的应用

在量子技术飞速发展的今天,实现高效稳定的量子态操控是推动量子计算、量子通信等领域迈向实用化的关键。任意波形发生器(AWG)作为精准信号控制的核心设备,在量子实验中发挥着不可或缺的作用。丹麦哥本哈根大学的研究团队基于单个量…

基于规则的自然语言处理

基于规则的自然语言处理 规则方法形态还原(针对英语、德语、法语等)中文分词切分歧义分词方法歧义字段消歧方法分词带来的问题 词性标注命名实体分类机器翻译规则方法的问题 规则方法 以规则形式表示语言知识,强调人对语言知识的理性整理&am…

Vue Fragment vs React Fragment

文章目录 前言🧩 一、概念对比:Vue Fragment vs React Fragment📦 二、使用示例对比✅ Vue 3 中使用 Fragment✅ React 中使用 Fragment 🔍 三、差异解析1. **使用方式**2. **传递属性(如 key)**3. **插槽系…

3D图像渲染和threejs交互坐标系入门知识整理

1. Games101 b站上面就有,看到第9节课基本对于图形渲染的原理和渲染过程有所了解。然后就可以使用openGL和GLSL。 点输入->投影到二维(生成三角形面)->光栅化为像素->z-buffer深度缓存判断层级->着色shading 2. openGL和GLSL 参…

跨平台架构区别

文章目录 重编译时轻运行时(uniapp)轻编译时重运行时(Taro) 重编译时轻运行时(uniapp) 对 vue 语法直接进行编译转换成对应平台代码,再通过添加运行时代码去补充能力,比如 nextTick…

windows系统MySQL安装文档

概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…

HarmonyOS 应用开发学习记录 - 从Windows开发者视角看鸿蒙开发

起始 2024年6月21日召开的华为开发者大会2024上宣布Harmony OS NEXT(即鸿蒙星河版)面向开发者启动Beta版,这也被人们称为“纯血鸿蒙”,它基于鸿蒙内核,不再兼容安卓开发的APP应用。 时至今日近一年了,我也有…

MySQL 事务管理与锁优化:确保数据一致性和并发性

在多用户并发访问的数据库系统中,如何确保数据的**一致性(Consistency)和并发性(Concurrency)**是一个核心挑战。**事务(Transaction)和锁(Lock)**是 MySQL 应对这一挑战的两大利器。事务保证了操作的原子性、一致性、隔离性和持久性,而锁机制则在并发环境下协调不同…

OpenPrompt 有没有实现连续提示词和提手动示词一起优化的

OpenPrompt 有没有实现连续提示词和提手动示词一起优化的 OpenPrompt 中连续提示词与手动提示词的混合优化 OpenPrompt 确实支持同时优化连续提示词(Soft Prompt)和手动设计的离散提示词(Manual Prompt)。这种混合优化策略可以结合两者的优势: 连续提示词:通过梯度下降…