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 -- 消息路由功能线程不安全问题
- 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)是完全一样的,但是会有细微的差别,可以直接进行通信!