Linux网络编程之高级并发服务器讲解.docVIP

  • 6
  • 0
  • 约9.23千字
  • 约 15页
  • 2016-05-11 发布于湖北
  • 举报
1. 介绍 在上一节,我们介绍了Linux简单的并发服务器,通过在服务器端建立多个子进程,来接收客户端的请求,实现并发处理,但这种方式明显有缺陷,服务器并不知道客户端请求的数量,所以事先建立的进程数不好确定。所以,这里介绍三种高级并发服务器模式。第一种是服务器端统一accept,接收客户端的到来,然后为每个客户端分配一个进程去处理. 第二种是统一accept接收请求,然后为每个客户端分配一个线程去处理。第三种建立多个线程去处理客户端请求,每个线程独自监听客户端的请求。显然,第一种方案解决了简单服务器的并发问题。第二种方案其实是对第一种方案的改进,因为线程切换的开销明显要小于进程切换的开销。第三种方案就是原来用进程去处理每个请求,现在换成用线程去处理,个人认为改进不是很大. 2. 高级并发服务器算法流程 (1)统一accept,多进程 ? socket(...); ? bind(...); ? listen(...); ? while(1){ ? accept(...); ? fork(...);//子进程 ?} ?close(...);//关闭服务器套接字 子进程: ?recv(...); ?process(...); ?send(...); ?close(...);//关闭客户端 (2)统一accept,多线程 ? socket(...); ? bind(...); ? list

文档评论(0)

1亿VIP精品文档

相关文档