学习目标
① 了解各种服务器模型
②熟悉使用select搭建并发服务器的方法
③熟悉使用epoll搭建并发服务器的方法
为了提高服务器效率,服务器应能同时被多个客户端进程使用而且能处理多个用户请求。可同时处理多个客户端请求的服务器称为并发服务器,实际上,我们在生活、应用中接触到的服务器都能实现并发功能。
最基础的并发服务器为多进程并发服务器和多线程并发服务器,将从这两种服务器入手,讲解搭建并发服务器的方法。
1.多进程并发服务器
在多进程并发服务器中,若有用户请求到达,服务器将会调用fork()函数,创建一个子进程。之后父进程将继续调用accept(),而子进程则去处理用户请求。下面将通过案例来展示使用多进程并发服务器实现网络通信的方法,并结合案例对多进程并发服务器进行分析。
案例1:搭建多进程并发服务器,使服务器端可接收多个客户端的数据并将接收到的数据转换为大写,返回到客户端;使客户端可向服务器发送数据,并将服务器返回的数据打印到终端。
服务器程序保存在文件fserver.c中,客户端程序保存在文件fclient.c中。案例实现如下: