服务器设计模型

服务端编程的挑战很美
Socket编程的服务器模型类型:

  • 循环服务器模型
  • 并发服务器模型
  • IO复用服务器模型
  • 循环服务器模型:
    使用循环方法去逐个处理客户端连接和请求

  • 并发服务器的简单模型:
    使用进程处理客户端的连接和请求

  • 并发服务器的TCP分类:

使用了进程池或者线程池的进行客户端请求处理的框架和方法,并按照accept处理情况进行不同状态的划分
*单客户端单进程,统一accept()
*单客户端单进程,统一accept()
*单客户端单线程,各线程独自accept(),使用互斥锁
*并发服务模型使用IO复用:

使用同一处理模块监视多个客户端链接并进行处理.在系统开始的时候,建立多个不同工作类型的处理单元,例如处理连接单元,处理业务单元等。在客户端来的时候,将客户端的连接放在一个状态池中,对所有客户端的连接状态在一个处理单元进行轮询处理,与前面并发服务器相比,客户端增加不会造成系统并行处理单元的增加,而处理能力与CPU和内存速度有直接关系

上述所有模型都有Demo

代码在 GitHub 上