linux高性能服务器编程---第八章高性能服务器程序框架 (1)

服务器模型-CS模型

优点

  • 实现起来简单 缺点
  • 服务器是通信的中心, 访问过大的时候会导致响应过慢

模式图 

编写的demo 没有用到fork函数. 后续待完善

服务器框架 IO模型

这个模型大概能够理解, 自己也算是学了半年的Javaweb.

socket在创建的时候默认是阻塞的, 不过可以通过传SOCK_NONBLOCK参解决 非阻塞调用都会立即返回 但可能事件没有发生(recv没有接收到信息), 没有发生和出错都会返回-1 所以需要通过errno来区分这些错误. 事件未发生 accept, send,recv errno被设置为 EAGAIN(再来一次)EWOULDBLOCK(期望阻塞) connect 被设置为 EINPROGRESS(正在处理中)

需要在事件已经发生的情况下 去调用非阻塞IO, 才能提高性能

常用IO复用函数 select poll epoll_wait 将在第九章后面说明 信号将在第十章说明

两种高效的事件处理模式和并发模式 

posted @ 2022-05-29 16:02  马梦佳  阅读(24)  评论(0编辑  收藏  举报