
Linux网络编程
Glemontree_
热爱技术,热爱开源
展开
-
[Linux] Linux epoll的用法
Epoll的用法select与epoll在旧的Linux中,通常都在使用select来做事件触发,而在新的Linux内核中,开始使用epoll来代替。相比于select,epoll最大的好处就是不会随着监听fd数目的增长而降低效率。当使用select时,它是采用轮询来处理的,轮询的fd数目越多,耗时越长,而且select同时监听的fd数目有限,通常为1024个,当然,这可以通过修改相关头文件然后对内原创 2017-09-05 09:57:23 · 356 阅读 · 0 评论 -
[Linux] Linux网络编程
EPoll的两种工作模式本文主要包含两个方面:Linux中的EAGAIN错误码EPoll的两种工作模式一、EAGAIN从字面上来看,表示再试一次的意思,这个错误经常出现在当应用程序进行一些非阻塞操作(对文件或socket)的时候,例如以O_NONBLOCKING的标志打开文件/socket/FIFO,如果连续做read操作而没有数据可读,此时程序不会阻塞起来等待数据准备就绪返回,read函数会原创 2017-09-05 09:58:21 · 344 阅读 · 0 评论 -
[网络编程] IO多路复用
阻塞IO和非阻塞IO常见的IO操作有read和write,通常IO操作都是阻塞I/O,即当前调用read时如果没有数据收到,那么线程或者进行就会被挂起,直到收到数据。对于非阻塞I/O,通过fcntl(POSIX)或ioctl(UNIX)设为非阻塞模式,这时当你调用read时,如果有数据收到,就返回数据,如果没有数据收到,就立刻返回。I/O多路复用多路复用是指使用一个线程来检查多个文件描述符(Sock原创 2017-09-12 11:06:19 · 583 阅读 · 0 评论