Unix網(wǎng)絡編程中有哪些模型
Unix和Windows同樣是由美國的貝爾實驗室所開發(fā)的獨立分時操作系統(tǒng),它的操作簡潔,界面優(yōu)化好,是編程人員必須熟悉理解的一類操作系統(tǒng)之一。而網(wǎng)絡編程是操作系統(tǒng)開發(fā)的一項重要內(nèi)容,尤其是在網(wǎng)絡編程中的I/O模型研究是非常重要的一項任務,那么在Unix網(wǎng)絡編程中,都有哪些I/O模型呢?學習啦小編來告訴你
1. 信號驅(qū)動I/O模型
顧名思義,信號驅(qū)動模型就是在運轉(zhuǎn)過程中會產(chǎn)生信號信息的一種I/O模型,當我們在同樣的操作情況下,如果內(nèi)核為我們的相關操作已經(jīng)準備好了數(shù)據(jù)信息,就會發(fā)送相關的SIGIO 信號, 在此基礎上我們能夠使用sigaction 安裝 SIGIO 信號的相關處理函數(shù),并實現(xiàn)接受數(shù)據(jù)報的功能。
2.異步I/O模型
所謂異步指的就是操作反應方式和順序有些與眾不同,異步模型中,是內(nèi)核在進行數(shù)據(jù)拷貝完畢之后才會通知我們完成了相關的操作。配合信號驅(qū)動的I/O模型,當內(nèi)核工作完畢之后就能夠發(fā)送相關的操作信號,并通知我們進行下一步的操作,這就是異步I/O模型。
3. 阻塞I/O模型
阻塞I/O模型是一類對無法滿足條件的數(shù)據(jù)進行阻塞傳遞的一類模型,例如,當計算機使用UDP函數(shù)recvfrom的時候,從這一類函數(shù)的內(nèi)核層次到應用層、應用層到內(nèi)核的相互調(diào)用的過程當中,計算機會把數(shù)據(jù)的相關信息如大小、描述符等傳遞至內(nèi)核進行審查,假如這時候的對應緩沖區(qū)沒有數(shù)據(jù)存在,不滿足條件,就會導致函數(shù)卡在數(shù)據(jù)正在傳輸?shù)奈恢枚枞?,這個I/O模型就被稱為阻塞I/O模型。
4. 非阻塞I/O模型
非阻塞模型和阻塞模型是恰好相反的一類I/O模型,具體特征為,在同樣適用UDP函數(shù)recvfrom時,對數(shù)據(jù)的相關信息大小、描述符參數(shù)給內(nèi)核進行判斷,假如對應緩沖區(qū)沒有數(shù)據(jù),則將數(shù)據(jù)進行返回處理,并且反復進行這樣的操作,直到緩沖區(qū)有數(shù)據(jù)到來。
5. I/O復用模型
假如我們在進行I/O模型設計的時候設計了一組套接字,只要在這組套接字中出現(xiàn)可讀、可寫或者直接錯誤的情況,select命令都會指派相關套接字進行返回操作,出現(xiàn)這種情況的時候,我們能夠檢查套接字的狀態(tài)信息,查看它們的位置,這種類型的I/O模型就稱為復用I/O模型。
以上就是Unix網(wǎng)絡編程中能夠遇到和涉及到的五種I/O模型,當然,計算機的編程知識非常繁雜,小編就不能夠為大家詳細解讀了,希望大家看了文章以后能對大家有所幫助。
Unix網(wǎng)絡編程中有哪些模型
上一篇:無線路由要如何設置
下一篇:telnet端口的工作過程怎么樣