Linux操作系统网络服务器模型 电脑资料_第1页
Linux操作系统网络服务器模型 电脑资料_第2页
Linux操作系统网络服务器模型 电脑资料_第3页
Linux操作系统网络服务器模型 电脑资料_第4页
Linux操作系统网络服务器模型 电脑资料_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux操作系统网络服务器模型 电脑资料 所谓并发服务器就是在同一个时刻可以处理多个客户端的请求;循环服务器是指服务器在同一时刻只可以响应一个客户端的请求, 1、TCP循环服务器: 首先TCP服务器接受一个客户端的连接请求,处理连接请求,在完成这个客户端的所有请求后断开连接,然后再接受下一个客户端的请求。创建TCP循环服务器的算法如下: 代码如下: socket(); /创建一个TCP套接字 bind(); /邦定公认的端口号 listen(); /倾听客户端连接 while(1) /开始循环接收客户端连接 aept();/接收当前客户端的连接 while(1) /处理当前客户端的请求 read(); process(); write(); close(); /关闭当前客户端的连接,准备接收下一个客户端连接 TCP循环服务器一次只处理一个客户端的请求,如果有一个客户端占用服务器不放时,其它的客户机连接请求都得不到及时的响应。因此,TCP服务器一般很少用循环服务器模型的。 2、TCP并发服务器: 并发服务器的思想是每一个客户端的请求并不由服务器的主进程直接处理,而是服务器主进程创建一个子进程来处理。创建TCP并发服务器的算法如下: 代码如下: socket(); /创建一个TCP套接字 bind(); /邦定公认的端口号 listen();/倾听客户端连接 while(1) /开始循环接收客户端的接收 aept();/接收一个客户端的连接 if(fork()=0) /创建子进程 while(1) /子进程处理某个客户端的连接 read(); process(); write(); close(); /关闭子进程处理的客户端连接 exit() ;/终止该子进程 close(); /父进程关闭连接套接字描述符,准备接收下一个客户端连接 TCP并发服务器可以解决TCP循环服务器客户端独占服务器的情况, 3、UDP循环服务器: UDP服务器每次从套接字上读取一个客户端的数据报请求,处理接收到的UDP数据报,然后将结果返回给客户机。创建UDP循环服务器的算法如下: 1 socket(); /创建一个数据报类型的套接字 2 bind(); /邦定公认的短口号 3 while(1) /开始接收客户端的连接 4 /接收和处理客户端的UDP数据报 5 recvfrom(); 6 process(); 7 sendto();/准备接收下一个客户机的数据报 8 消除行号 因为UDP是非面向连接的,没有一个客户端可以独占服务器。只要处理过程不是死循环,服务器对于每一个客户机的请求总是能够处理的。 UDP循环服务器在数据报流量过大时由于处理任务繁重可能造成客户技数据报丢失,但是因为UDP协议本身不保证数据报可靠到达,所以UDP协议是允许丢失数据报的。 鉴于以上两点,一般的UDP服务器采用循环方式4、UDP并发服务器把并发的概念应用UDP就得到了并发UDP服务器,和并发TCP服务器模型一样是创建子进程来处理的。 创建UDP并发服务器的算法如下: 代码如下: socket(); /创建一个数据报类型的套接字 bind(); /邦定公认的短口号 while(1) /开始接收客户端的连接 /接收和处理客户端的UDP数据报 recvfrom(); if(fork()=0) /创建子进程 rocess(); sendto(); 除非服务器在处理客户端的请求所用的时间比较长以外,人们实际上很少用这种UDP并发服务器模型的。 4、多路复用I/O并发服务器: 创建子进程会带来系统资源的大量消耗,为了解决这个问题,采用多路复用I/O模型的并发服务器。采用select函数创建多路复用I/O模型的并发服务器的算法如下: 初始化(socket,bind,listen); 代码如下: while(1) 设置监听读写文件描述符(FD_*); 调用select; 如果是倾听套接字就绪,说明一个新的连接请求建立 建立连接(aept); 加入到监听文件描述符中去; 否则说明是一个已经连接过的描述符 进行操作(read或者write); 多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论