网络编程5-多线程服务器_第1页
网络编程5-多线程服务器_第2页
网络编程5-多线程服务器_第3页
网络编程5-多线程服务器_第4页
网络编程5-多线程服务器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、多线程服务器大纲 多线程服务器模型 多线程例程代码讲解 作业讲解循环服务器:udp服务器 udp循环服务器的实现非常简单:udp服务器每次从套接字上读取一个客户端的请求,处理, 然后将结果返回给客户机.算法 socket(.); bind(.); while(1) recvfrom(.); process(.); sendto(.); 因为udp是非面向连接的,没有一个客户端可以一直占住服务端. 只要处理过程不是死循环, 服务器对于每一个客户机的请求总是能够满足.循环服务器:tcp服务器 tcp循环服务器的实现也不难:tcp服务器接受一个客户端的连接,然后处理,完成了这个客户的所有请求后,断开

2、连接.算法 socket(.); bind(.); listen(.); while(1) accept(.); while(1) read(.); process(.); write(.); closesocket(.); udp和tcp循环式服务器对比socket(.);bind(.);while(1) recvfrom(.); process(.); sendto(.); socket(.); bind(.); listen(.); while(1) accept(.); while(1) read(.); process(.); write(.); closesocket(.); tc

3、p循环服务器一次只能处理一个客户端的请求.只有在这个客户的所有请求都满足后, 服务器才可以继续后面的请求.这样如果有一个客户端占住服务器不放时,其它的客户机都不能工作了.因此,tcp服务器一般很少用简单的循环服务器模型。 为了弥补循环tcp服务器的缺陷,人们提出了多路复用和并发服务器的模型. 并发服务器:多路复用i/o 初始化(socket,bind,listen); while(1) 设置要监听读写文件描述符(fd_*); 调用select; if(监听套接字就绪)/说明一个新的连接请求建立 建立连接(accept); 加入到监听文件描述符中去; else /有已经连接过的文件描述符有数据响

4、应 对相应的文件描述符进行操作(read或者write); 多路复用i/o可以解决资源限制的问题.该模型实际上是将udp循环模型用在了tcp上面.由于服务器依次处理客户的请求,所以可能会导致有的客户会等待很久. 并发服务器的思想是每一个客户机的请求并不由服务器直接处理,而是服务器创建一个子线程来处理.算法(监听线程)socket(.);bind(.);listen(.);while(1) accept(.); _beginthread(workthread,); 算法(工作子线程) workthread() while(1) read(.); process(.); write(.); clo

5、sesocket(.); createthread handle winapi createthread(_in_opt_ lpsecurity_attributes lpthreadattributes,_in_ size_t dwstacksize,_in_ lpthread_start_routine lpstartaddress, _in_opt_ lpvoid lpparameter,_in_ dword dwcreationflags,_out_opt_ lpdword lpthreadid);beginthread uintptr_t _beginthread( / native

6、 codevoid( _cdecl *start_address )( void * ),unsigned stack_size,void *arglist );beginthreadex uintptr_t _beginthreadex( / native codevoid *security,unsigned stack_size,unsigned ( _stdcall *start_address )( void * ),void *arglist,unsigned initflag,unsigned *thrdaddr ); tcp并发服务器可以解决tcp循环服务器客户机独占服务器的情况. 不过也同时带来了一个不小的问题

温馨提示

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

评论

0/150

提交评论