第四章UNIX网络编程实用技术.pdf
文本预览下载声明
第四章 UNIX网络编程实用技术
第四章 UNIX网络编程实用技术
前面的章节已经讲述了套接字实现的基本方
前面的章节已经讲述了套接字实现的基本方
法。然而,在实际应用中,一个软件仅能完成
法。然而,在实际应用中,一个软件仅能完成
相应的功能是不够的,还必须有足够的处理能
相应的功能是不够的,还必须有足够的处理能
力及响应速度。对于服务器/客户体系的软件
力及响应速度。对于服务器/客户体系的软件
而言,服务器的性能则占据主导地位。而通过
而言,服务器的性能则占据主导地位。而通过
并发技术,能极大地提高服务器的处理能力和
并发技术,能极大地提高服务器的处理能力和
响应速度,因此本章将详细讲述在各种类型并
响应速度,因此本章将详细讲述在各种类型并
发服务器环境下编程的一些实用技术。
发服务器环境下编程的一些实用技术。
1
主要内容
主要内容
并发服务器基础
并发服务器基础
多进程服务器
多进程服务器
多线程服务器
多线程服务器
I/O多路复用服务器
I/O多路复用服务器
2
4.1 并发服务器基础
4.1 并发服务器基础
4.1.1 服务器分类
4.1.1 服务器分类
– 按连接类型分类
– 按连接类型分类
• 面向连接的服务器
• 面向连接的服务器
• 面向无连接的服务器
• 面向无连接的服务器
– 按处理方式分类
– 按处理方式分类
• 重复型服务器
• 重复型服务器
– 每次只处理一个客户请求,当上一个客户请求处理完成后,才
– 每次只处理一个客户请求,当上一个客户请求处理完成后,才
处理下一个客户请求。效率低,实现简单
处理下一个客户请求。效率低,实现简单
• 并发型服务器
• 并发型服务器
– 每次可处理多个客户请求。效率高,实现复杂
– 每次可处理多个客户请求。效率高,实现复杂
3
4.1.2 重复型服务器实例
4.1.2 重复型服务器实例
服务器端程序
服务器端程序
– 服务器等待客户连接,一旦有连接则显示客户的地址,然
– 服务器等待客户连接,一旦有连接则显示客户的地址,然
后接收来自该客户的信息(字符串)。每当收到一个字符
后接收来自该客户的信息(字符串)。每当收到一个字符
串,则显示该字符串,并将字符串反转,再将反转的字符
串,则显示该字符串,并将字符串反转,再将反转的字符
串发回客户。之后,继续等待该客户的信息直至该客户关
串发回客户。之后,继续等待该客户的信息直至该客户关
闭连接。完成与该客户交互后,服务器开始等待下一客户
闭连接。完成与该客户交互后,服务器开始等待下一客户
请求,并重复上述过程。
请求,并重复上述过程。
客户端程序
客户端程序
– 客户首先与相应服务器连接。然后接收用户输入的字符
– 客户首先与相应服务器连接。然后接收用户输入的字符
串,再将字符串发送给服务器,接收服务器发回的信息并
串,再将字符串发送给服务器,接收服务器发回的信息并
显示。之后,继续等待用户输入直至用户输入CTRL+D。
显示。之后,继续等待用户输入直至用户输入CTRL+D。
当收到用户输入的CTRL+D后,客户关闭连接并退出。
当收到用户输入的CTRL+D后,
显示全部