linux网络编程之用epoll实现io复用(基于tcp)
生活随笔
收集整理的這篇文章主要介紹了
linux网络编程之用epoll实现io复用(基于tcp)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、epoll介紹
epoll是在2.6內核中提出的,是之前的select和poll的增強版本。相對于select和poll來說,epoll更加靈活,沒有描述符限制。epoll使用一個文件描述符管理多個描述符,將用戶關系的文件描述符的事件存放到內核的一個事件表中,這樣在用戶空間和內核空間的copy只需一次。
2、epollAPI
epoll操作過程需要三個接口,分別如下:
(1) int epoll_create(int size);
創建一個epoll的句柄,size用來告訴內核這個監聽的數目一共有多大。這個參數不同于select()中的第一個參數,給出最大監聽的fd+1的值。需要注意的是,當創建好epoll句柄后,它就是會占用一個fd值,在linux下如果查看/proc/進程id/fd/,是能夠看到這個fd的,所以在使用完epoll后,必須調用close()關閉,否則可能導致fd被耗盡。
(2)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
epoll的事件注冊函數,它不
總結
以上是生活随笔為你收集整理的linux网络编程之用epoll实现io复用(基于tcp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux之vim如何快速找到第二次打开
- 下一篇: linux网络编程之SCTP套接字常用接