阅读背景:

《Linux高性能服务器编程》学习总结(八)——高性能服务器程序框架

来源:互联网 

第八章      高性能服务器程序框架

  我们将服务器一般分为三个主要模块,I/O处理单元、逻辑单元及存储单元。常用的服务器模型有C/S模型和P2P模型,比较简单。我们来看一下网络编程中的I/O模型。首先我们要了解阻塞模型和非阻塞模型的区别,socket在创建时默认是阻塞的,可以在socket系统调用的第二个参数传递SOCK_NONBLOCK标志或者通过fcntl将其设置为非阻塞,针对阻塞I/O的系统调用可能因为无法立即完成而被系统挂起,直到等待的事件发生为止,而非阻塞I/O的系统调用则会立即返回,如果事件没有立即发生,和出错一样会返回-1,此时我们要通过errno来区分,通常来讲,accept、send和recv事件未发生errno被设置成EAGAIN或EWOULDBLOCK,对connect而言,errno则为EINPROGRESS。  我们将服务器一般分为三个主要模块,I/O处理单




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: