2014年1月10日

Epoll在LT和ET模式下的读写方式

摘要: 在一个非阻塞的socket上调用read/write函数,返回EAGAIN 或者 EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输出: Resource temporarily unavailable总结:这个错误表示资源暂时不够,能read时,读缓冲区没有数据,或者write时,写缓冲区满了。遇到这种情况,如果是阻塞socket,read/write就要阻塞掉。 如果是非阻塞socket,read/write立即返... 阅读全文

posted @ 2014-01-10 15:08 阳台 阅读(349) 评论(0) 推荐(0)

深入了解epoll (转)

摘要: 一、 介绍Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性。传统的select以及poll的效率会因为 socket数量的线形递增而导致呈二次乃至三次方的下降,而epoll的性能不会随socket数量增加而下降。标准的linux-2.4.20内核... 阅读全文

posted @ 2014-01-10 11:18 阳台 阅读(1347) 评论(0) 推荐(0)

linux网络编程之网络函数详解

摘要: 1、epoll_create函数 函数声明:int epoll_create(int size) 该 函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。size就是你在这个epoll fd上能关注的最大socket fd数。随你定好了,前提是有足够的空间。2. socket 函数 函数原型 int socket(int domain, int type, int protocol); 应用程序调用socket函数来创建一个能够进行网络通信的套接字,即套接口描述文件字,它是一个整数,如同文件描述符一样,是内... 阅读全文

posted @ 2014-01-10 09:40 阳台 阅读(899) 评论(0) 推荐(0)

导航