版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、學(xué)習(xí)目標(biāo)1.2.3.4.了解poll操作函數(shù)熟練使用epoll多路IO模型了解epoll ET/LT觸發(fā)模式說出UDP的通信流程分區(qū) 13-epoll和udp 的第 1 頁(yè)復(fù)習(xí)1.2.tcp狀態(tài)轉(zhuǎn)換selectfd_set - 1024select(maxfd+1, timeout)sizeof(fd_set) = 128&reads, &write, &expt,NULL -阻塞timeval val = 1,0;structreads-傳入傳出參數(shù)FD_ZERO(fd_set*);FD_SET(fd, fd_set*); FD_ISSET(fd, fd_set*); FD_CLR(fd,
2、fd_set*);思路/將待檢測(cè)的數(shù)據(jù)初始化到fd_set集合中/select();/ 判讀fd是否是的/ 已經(jīng)連接的客戶端發(fā)送來的數(shù)據(jù)for();fd_isset(i, &reads);分區(qū) 13-epoll和udp 的第 2 頁(yè)while(1)循環(huán)的委托內(nèi)核檢測(cè)1 - epoll三個(gè)函數(shù):-該函數(shù)生成一個(gè)epoll的文件描述符size);typedef union epoll_data epoll_creae(void*ptr; fd; u32; u64;size: epoll上能關(guān)注的最大描述符數(shù)用于控制某個(gè)epoll文件描述符事件,可以注冊(cè)、修改、刪除-uu32_t64_tepoll_
3、ctl(epfd,op,fd, epoll_data_t;struct epoll_event *event);參數(shù):struct epoll_event epfd: epoll_create生成的epollop:描述符u32_tevents;epoll_data_t data;EPOLL_CTL_ADDEPOLL_CTL_MODEPOLL_CTL_DELfd: 關(guān)聯(lián)的文件描述符event: 告訴內(nèi)核要-;修改刪除events:-EPOLLIN - 讀EPOLLOUT - 寫EPOLLERR - 異常什么事件-等待IO事件發(fā)生 - 可以設(shè)置阻塞的函數(shù)epoll_wait( epfd,struc
4、t epoll_event* events, / 數(shù)組maxevents,timeout);對(duì)應(yīng)select和poll函數(shù)參數(shù):epfd: 要檢測(cè)的句柄 events:用于回傳待處理事件的數(shù)組 maxevents:告訴內(nèi)核這個(gè)events的大小timeout:為超時(shí)時(shí)間 -1:阻塞 0: 立即返回 0:分區(qū) 13-epoll和udp 的第 3 頁(yè)- 1-1- epoll樹structepoll_eventepoll_createepfdepoll_ctl(epfd, EPOLL_CTL_ADD,cfd,&ev)epoll_ctl(epfd, EPOLL_CTL_ADD,lfd,&ev)u32_
5、t eventsu32_t eventsepoll_data_t dataepoll_data_t datatypedef union epoll_data void*ptr; fd; u32; u64;uu32_t64_t epoll_data_t;分區(qū) 13-epoll和udp 的第 4 頁(yè)- 1-2epoll模型10:27main()/ 創(chuàng)建lfd/ 綁定bind();/ listen();的套接字socket();=/ epoll樹根節(jié)點(diǎn)epfd = epoll_create(3000);發(fā)送變化的fd對(duì)應(yīng)信息/struct epoll_event all3000;/ init的lfd
6、掛到epoll樹上/struct epoll_event ev;/ 在ev中init lfd信息 ev.events = EPOLLIN ; ev.data.fd = lfd; epoll_ctl(epfd, EPOLL_CTL_ADD, while(1)/ 委托內(nèi)核檢測(cè)事件&ev);lfd,ret = epoll_wait(epfd, all, 3000, -1);/ 根據(jù)ret遍歷all數(shù)組i=0; i客戶端/客戶端-服務(wù)器發(fā)送一個(gè)數(shù)據(jù)包心跳包看成一個(gè)協(xié)議應(yīng)用層協(xié)議判斷網(wǎng)絡(luò)是否斷開有多個(gè)連續(xù)的心跳包沒收到/沒有回復(fù)關(guān)閉通信的套接字重連重新初始套接字繼續(xù)發(fā)送心跳包2客戶端-乒乓包-比心跳包攜
7、帶的數(shù)據(jù)多一些除了知道連接是否存在, 還能獲取一些信息分區(qū) 13-epoll和udp 的第 10 頁(yè)5 - UDP通信1.tcp - 面向連接的安全的數(shù)據(jù)包通信a. 基于流 sock_streamudp - 面向無連接不安全報(bào)文傳輸2.3.通信流程服務(wù)器端:創(chuàng)建套接字- socket第二個(gè)參數(shù): SOCK_DGRAM綁定IP和端口: bindfdstruct sockaddr - 服務(wù)器通信接收數(shù)據(jù): recvfromssize_t recvfrom(*buf, size_t len,sockfd, voidflags,structsockaddr *src_addr, socklen_t*a
8、ddrlen);fd - 文件描述符buf: 接收數(shù)據(jù)緩沖區(qū) len: buf的最大容量 flags: 0src_addr: 另一端的IP和端口, 傳出參數(shù)addrlen: 傳入傳出參數(shù) 發(fā)送數(shù)據(jù): sendtossize_dto(sockfd, const void分區(qū) 13-epoll和udp 的第 11 頁(yè)*buf, size_t len,flags, const structsockaddr *dest_addr, socklen_taddrlen);sockfd: socket函數(shù)創(chuàng)建出來的發(fā)送的數(shù)據(jù)buf:len: 發(fā)送的數(shù)據(jù)的長(zhǎng)度flags: 0dest_addr: 另一端的IP和端口addrlen: dest_addr長(zhǎng)度udp服務(wù)器端: 需要一個(gè)套接字, 通信客戶端:創(chuàng)建一個(gè)用于通信的套接字: socket通信發(fā)送數(shù)據(jù): sendto需要先準(zhǔn)備好一個(gè)結(jié)構(gòu)體: structsockaddr_in服務(wù)器的IP和端口 接收數(shù)據(jù): recvformudp的數(shù)據(jù)是不安全的, 容易丟包丟包, 丟全部還
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025會(huì)計(jì)基礎(chǔ)知識(shí)重點(diǎn):融資租賃合同
- 2025池塘清淤工程的施工合同
- 9 知法守法 依法維權(quán) 依法維權(quán)有途徑(說課稿)-部編版道德與法治六年級(jí)上冊(cè)
- 21 淡水資源 說課稿-2024-2025學(xué)年科學(xué)三年級(jí)上冊(cè)青島版
- 2025法律法規(guī)工傷員工續(xù)簽合同問題 管理資料
- 6將相和(第一課時(shí))說課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語文統(tǒng)編版
- 農(nóng)村荒山承包合同范本
- 硬件維護(hù)投標(biāo)方案
- 2023二年級(jí)數(shù)學(xué)下冊(cè) 四 認(rèn)識(shí)萬以內(nèi)的數(shù)第8課時(shí) 近似數(shù)說課稿 蘇教版001
- Unit 1 Making friends PartA Let's talk(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 閩教版(2020)小學(xué)信息技術(shù)三年級(jí)上冊(cè)第2課《人工智能在身邊》說課稿及反思
- 語文-百師聯(lián)盟2025屆高三一輪復(fù)習(xí)聯(lián)考(五)試題和答案
- 地理-山東省濰坊市、臨沂市2024-2025學(xué)年度2025屆高三上學(xué)期期末質(zhì)量檢測(cè)試題和答案
- 正面上手發(fā)球技術(shù) 說課稿-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 佛山市普通高中2025屆高三下學(xué)期一模考試數(shù)學(xué)試題含解析
- 事故隱患排查治理情況月統(tǒng)計(jì)分析表
- 永磁直流(汽車)電機(jī)計(jì)算程序
- 國(guó)家電網(wǎng)招聘2025-企業(yè)文化復(fù)習(xí)試題含答案
- 頸部瘢痕攣縮畸形治療
- 貴州省貴陽(yáng)市2023-2024學(xué)年五年級(jí)上學(xué)期語文期末試卷(含答案)
- 醫(yī)院物業(yè)服務(wù)組織機(jī)構(gòu)及人員的配備、培訓(xùn)管理方案
評(píng)論
0/150
提交評(píng)論