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
将在第九章后面说明 信号将在第十章说明