Linux第十五讲:Socket编程UDP

Linux第十五讲:Socket编程UDP

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细节问题

相关推荐
*小海豚*几秒前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`1 分钟前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
春日见2 分钟前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡11 分钟前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
消失的旧时光-194317 分钟前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
斯普信专业组19 分钟前
构建基于MCP的MySQL智能运维平台:从开源服务端到交互式AI助手
运维·mysql·开源·mcp
晓131327 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
唐装鼠36 分钟前
Linux 下 malloc 内存分配机制详解
linux·malloc
予枫的编程笔记36 分钟前
【Linux入门篇】Linux运维必学:Vim核心操作详解,告别编辑器依赖
linux·人工智能·linux运维·vim操作教程·程序员工具·编辑器技巧·新手学vim
17(无规则自律)1 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件