其實linux自帶的man是非常好的學習工具。
select, poll, epoll都能直接通過man得到很詳細的解釋,當然具體的栗子就需要在網上找找或者看看書了。
1.select
#include
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
void fd_clr(int fd, fd_set *set);
int fd_isset(int fd, fd_set *set);
void fd_set(int fd, fd_set *set);
void fd_zero(fd_set *set);
需要注意的就是
①fd_set就是用於需要監聽的描述符的控制代碼的集合,是乙個專門的資料結構
②這裡面的*都是需要在填引數的時候取位址的意思
③select(套接字最大數+1, 讀描述符, 寫描述符, 異常描述符, 超時時間)
④返回值,0表示超時返回,正數表示監聽事件發生的數量,負數表示異常。
2.poll
#include
int poll(struct pollfd *fds, nfds_t nfds, int timeout)
struct pollfd epoll_data_t;
需要注意的就是
①epoll_create引數size只要填寫乙個》0的整數即可,返回乙個epoll描述符epfd,用於代表整個epoll
②epoll_ctl(epoll描述符, 將監聽描述符加入/改變/登出監聽, 需要監聽的描述符, 需要關心的事件及其繫結的描述符(*表示取結構體的位址))
③epoll_wait(epoll描述符, 用於存放返回事件及其對應描述符的結構體陣列, 最大事件數量, 超時時間)
網路程式設計學習 IO復用 select poll
本文為unp第6章學習筆記 一,select函式 include int select int maxfd,fd set readset,fd set writeset,fd set exceptset,const struct timeval timeout 引數 maxfd select管理的最...
網路程式設計2
1.tcp和udp的區別 1 tcp是面向連線的傳輸控制協議,而udp是無連線的資料報服務 2 tcp傳輸資料可靠,保證資料傳輸的正確性和順序,而udp傳輸資料不可靠,會發生丟包,不保證傳輸資料的順序 3 tcp對系統資源要求多,udp對系統資源要求少 4 udp具有較好的實時性,工作效率較tcp高...
網路程式設計2
url類 url url new url throws malformedurlexception 這樣可以通過其方法獲得我們想要的資訊 string getfile 獲取此 url 的檔名。myweb demo.html?name df,age 30 string gethost 獲取此 url ...