当前位置: 首页 > news >正文

Linux第十五讲:Socket编程UDP

Linux第十五讲:Socket编程UDP

  • 1.echo server
    • 1.1服务端代码 -- 获取消息,发送消息
    • 1.2客户端代码
    • 1.3知识补充
  • 2.字典查找功能实现
    • 2.1拓展知识
  • 3.聊天室的实现 -- V1版本
    • 3.1V2版本 -- 一个线程发送消息,一个线程接收消息
    • 3.2V3版本 -- 将发消息任务放到任务队列中,使用线程池派发任务
  • 4.补充知识
    • 4.1地址转换函数 -- inet_pton inet_ntop && inet_ntoa线程不安全问题
    • 4.2Rout -- 消息路由功能线程不安全问题![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e83f886bfd6849fb88086ac2c6022b22.png)
    • 4.3Windows和Linux互相通信操作
    • 4.4InetAddr细节问题

1.echo server

echo server:写一个服务器,客户端向服务器发送什么,就返回什么,下面我们来实现一下:

1.1服务端代码 – 获取消息,发送消息

在这里插入图片描述
总体代码展示:
在这里插入图片描述
在这里插入图片描述

1.2客户端代码

在这里插入图片描述

1.3知识补充

在这里插入图片描述

2.字典查找功能实现

我们想让服务器做这样的一个功能:客户端向服务端输入一个英文单词,服务端将翻译的中文返回并打印给客户端。目的是理解不同的文件之间的沟通:
在这里插入图片描述

2.1拓展知识

在这里插入图片描述

3.聊天室的实现 – V1版本

我们想实现类似群聊的功能,当一个客户端向服务器发送消息,为了让群聊中的所有人都看到,服务器需要将消息向所有在群聊中的人再发送一遍:
在这里插入图片描述

3.1V2版本 – 一个线程发送消息,一个线程接收消息

在这里插入图片描述
这样就可以互相看到了:
在这里插入图片描述

3.2V3版本 – 将发消息任务放到任务队列中,使用线程池派发任务

在这里插入图片描述

4.补充知识

4.1地址转换函数 – inet_pton inet_ntop && inet_ntoa线程不安全问题

在这里插入图片描述

4.2Rout – 消息路由功能线程不安全问题在这里插入图片描述

4.3Windows和Linux互相通信操作

Windows和Linux通信调用的接口(sendto)是完全一样的,但是会有细微的差别,可以直接进行通信!

4.4InetAddr细节问题

在这里插入图片描述


文章转载自:

http://zem6DKpZ.dycbp.cn
http://fYbNyb9y.dycbp.cn
http://nRo7yR6P.dycbp.cn
http://rTHh2bBX.dycbp.cn
http://f8PhqFtN.dycbp.cn
http://V0rosUnL.dycbp.cn
http://F6HoniQl.dycbp.cn
http://myPfjvVK.dycbp.cn
http://SuLfPh8x.dycbp.cn
http://WUXCFXBU.dycbp.cn
http://g8XWiZ2F.dycbp.cn
http://8wDSWUB5.dycbp.cn
http://HORQjt76.dycbp.cn
http://A4mexqeM.dycbp.cn
http://4LVcPozP.dycbp.cn
http://OzSTvD6b.dycbp.cn
http://ZstRMKzW.dycbp.cn
http://9dcqQhr0.dycbp.cn
http://q6paoK7E.dycbp.cn
http://CuHmxtn2.dycbp.cn
http://NG94um4z.dycbp.cn
http://TZHkjhv6.dycbp.cn
http://50LSRqka.dycbp.cn
http://bG8Bhayp.dycbp.cn
http://vWYcGJqn.dycbp.cn
http://NpTArlwe.dycbp.cn
http://kQnp5HnS.dycbp.cn
http://IlthzrJJ.dycbp.cn
http://eDpKsOEG.dycbp.cn
http://S7Fd4q13.dycbp.cn
http://www.dtcms.com/a/376439.html

相关文章:

  • Electron 高级 UI:集成 React 或 Vue.js
  • CKAD-CN考试之路----10
  • Linux嵌入式自学笔记(基于野火EBF6ULL):1.配置环境
  • 2025【1460天】网络工程师经验之道
  • 图解设计模式【3】
  • java 将pdf转图片
  • ES(springcloud笔记第五期)
  • Day40 Web服务器原理与C语言实现:从HTTP协议到静态资源服务
  • 利用FFmpeg自动批量处理m4s文件
  • [iOS] ViewController 的生命周期
  • MySQL 核心文件解析:从配置到存储的 “说明书 + 记录仪” 系统
  • 一文了解大模型压缩与部署
  • Jenkins 构建 Node 项目报错解析与解决——pnpm lockfile 问题实战
  • Wazuh 研究记录 | 开源XDR | 安全基线检测
  • 配电网故障诊断与自愈控制工具的智慧能源开源了
  • [邮件服务器core] 安全通信(SSL/TLS) | OpenSSL库管理 | 服务端安全SECURITY.md
  • Workers API 实战教程:45 秒完成 CI/CD 云函数部署
  • MySQL收集processlist记录的shell工具mysql_collect_processlist
  • 计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • 【nginx基础】Nginx安装指南:CentOS 7.9源码编译安装Nginx 1.28.0完整指南
  • ShardingJDBC实战指南
  • 数据库--MySQL数据管理
  • Java全栈学习笔记33
  • 网络学习笔记
  • GitHub每日最火火火项目(9.10)
  • 基于stm32的环境监测系统/智能家居/空气质量监测系统
  • 基于PyQt5和阿里云TTS的语音合成应用开发实战[附源码】
  • Linux的V4L2视频框架学习笔记
  • Android studio安装教程——超详细(含安装包安装教程)
  • 如何将大型音频文件从 iPhone 发送到不同的设备