“如果异步操作出现任何异常,就立即转换为同步模式,不会耽误事。”
我对这里也感觉纳闷
异步出现非正常情况,除了连接断掉之外,无外乎是EAGAIN/EWOULDBLOCK,也就是read没数据或者write缓冲区满,这时候转成同步模式是不合适的,转成同步模式会阻塞当前线程,这样做和就地poll这个socket没啥两样,都会造成线程被阻塞
【 在 ylh0315 的大作中提到: 】
: 例如:int RecvNet(int socket,char *buf,int n,int timeout)
: 接收,整个系统,包括客户端,管理器,服务器,及各种模式(多进程,多线程,线程池),都是通过这个函数进行的。
: 它基本就是read。多了个TIMEOUT。它原来是阻塞模式循环接收。
: ...................
--
FROM 113.120.108.*