學(xué)習(xí)啦>學(xué)習(xí)電腦>網(wǎng)絡(luò)知識(shí)>網(wǎng)絡(luò)基礎(chǔ)知識(shí)>

Unix網(wǎng)絡(luò)編程中有哪些模型

時(shí)間: 孫勝龍652 分享

  Unix和Windows同樣是由美國(guó)的貝爾實(shí)驗(yàn)室所開發(fā)的獨(dú)立分時(shí)操作系統(tǒng),它的操作簡(jiǎn)潔,界面優(yōu)化好,是編程人員必須熟悉理解的一類操作系統(tǒng)之一。而網(wǎng)絡(luò)編程是操作系統(tǒng)開發(fā)的一項(xiàng)重要內(nèi)容,尤其是在網(wǎng)絡(luò)編程中的I/O模型研究是非常重要的一項(xiàng)任務(wù),那么在Unix網(wǎng)絡(luò)編程中,都有哪些I/O模型呢?學(xué)習(xí)啦小編來告訴你

  1. 信號(hào)驅(qū)動(dòng)I/O模型

  顧名思義,信號(hào)驅(qū)動(dòng)模型就是在運(yùn)轉(zhuǎn)過程中會(huì)產(chǎn)生信號(hào)信息的一種I/O模型,當(dāng)我們?cè)谕瑯拥牟僮髑闆r下,如果內(nèi)核為我們的相關(guān)操作已經(jīng)準(zhǔn)備好了數(shù)據(jù)信息,就會(huì)發(fā)送相關(guān)的SIGIO 信號(hào), 在此基礎(chǔ)上我們能夠使用sigaction 安裝 SIGIO 信號(hào)的相關(guān)處理函數(shù),并實(shí)現(xiàn)接受數(shù)據(jù)報(bào)的功能。

  2.異步I/O模型

  所謂異步指的就是操作反應(yīng)方式和順序有些與眾不同,異步模型中,是內(nèi)核在進(jìn)行數(shù)據(jù)拷貝完畢之后才會(huì)通知我們完成了相關(guān)的操作。配合信號(hào)驅(qū)動(dòng)的I/O模型,當(dāng)內(nèi)核工作完畢之后就能夠發(fā)送相關(guān)的操作信號(hào),并通知我們進(jìn)行下一步的操作,這就是異步I/O模型。

  3. 阻塞I/O模型

  阻塞I/O模型是一類對(duì)無法滿足條件的數(shù)據(jù)進(jìn)行阻塞傳遞的一類模型,例如,當(dāng)計(jì)算機(jī)使用UDP函數(shù)recvfrom的時(shí)候,從這一類函數(shù)的內(nèi)核層次到應(yīng)用層、應(yīng)用層到內(nèi)核的相互調(diào)用的過程當(dāng)中,計(jì)算機(jī)會(huì)把數(shù)據(jù)的相關(guān)信息如大小、描述符等傳遞至內(nèi)核進(jìn)行審查,假如這時(shí)候的對(duì)應(yīng)緩沖區(qū)沒有數(shù)據(jù)存在,不滿足條件,就會(huì)導(dǎo)致函數(shù)卡在數(shù)據(jù)正在傳輸?shù)奈恢枚枞?,這個(gè)I/O模型就被稱為阻塞I/O模型。

  4. 非阻塞I/O模型

  非阻塞模型和阻塞模型是恰好相反的一類I/O模型,具體特征為,在同樣適用UDP函數(shù)recvfrom時(shí),對(duì)數(shù)據(jù)的相關(guān)信息大小、描述符參數(shù)給內(nèi)核進(jìn)行判斷,假如對(duì)應(yīng)緩沖區(qū)沒有數(shù)據(jù),則將數(shù)據(jù)進(jìn)行返回處理,并且反復(fù)進(jìn)行這樣的操作,直到緩沖區(qū)有數(shù)據(jù)到來。

  5. I/O復(fù)用模型

  假如我們?cè)谶M(jìn)行I/O模型設(shè)計(jì)的時(shí)候設(shè)計(jì)了一組套接字,只要在這組套接字中出現(xiàn)可讀、可寫或者直接錯(cuò)誤的情況,select命令都會(huì)指派相關(guān)套接字進(jìn)行返回操作,出現(xiàn)這種情況的時(shí)候,我們能夠檢查套接字的狀態(tài)信息,查看它們的位置,這種類型的I/O模型就稱為復(fù)用I/O模型。

  以上就是Unix網(wǎng)絡(luò)編程中能夠遇到和涉及到的五種I/O模型,當(dāng)然,計(jì)算機(jī)的編程知識(shí)非常繁雜,小編就不能夠?yàn)榇蠹以敿?xì)解讀了,希望大家看了文章以后能對(duì)大家有所幫助。

Unix網(wǎng)絡(luò)編程中有哪些模型

Unix和Windows同樣是由美國(guó)的貝爾實(shí)驗(yàn)室所開發(fā)的獨(dú)立分時(shí)操作系統(tǒng),它的操作簡(jiǎn)潔,界面優(yōu)化好,是編程人員必須熟悉理解的一類操作系統(tǒng)之一。而網(wǎng)絡(luò)編程是操作系統(tǒng)開發(fā)的一項(xiàng)重要內(nèi)容,尤其是在網(wǎng)絡(luò)編程中的I/O模型研究是非常重要的一項(xiàng)
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • 無線路由要如何設(shè)置
    無線路由要如何設(shè)置

    現(xiàn)在無線WIFI已經(jīng)成為生活必備品,來到任何地方都要打開手機(jī)搜索無線WIFI。幾乎每個(gè)家庭都安裝了家用無線WIFI,這需要一個(gè)無線路由器。但是無線路由器

  • 串口服務(wù)器是什么
    串口服務(wù)器是什么

    串口服務(wù)器是一種為數(shù)據(jù)轉(zhuǎn)換而用的轉(zhuǎn)換器,一般這種數(shù)據(jù)轉(zhuǎn)換是在rs232/485/422到tcp/ip之間的,提供的終端串口是rs232/485/422的,這個(gè)端口能夠?qū)崿F(xiàn)與網(wǎng)絡(luò)數(shù)

  • 國(guó)內(nèi)哪個(gè)好
    國(guó)內(nèi)哪個(gè)好

    在我們?nèi)缃竦纳钪杏泻芏嗟臇|西都是和互聯(lián)網(wǎng)有著密切的關(guān)系的,通過互聯(lián)網(wǎng)這個(gè)巨大的寶庫來幫助我們將生活進(jìn)行的更好。我們清楚的是互聯(lián)網(wǎng)是一個(gè)

  • 虛擬局域網(wǎng)有什么優(yōu)點(diǎn)
    虛擬局域網(wǎng)有什么優(yōu)點(diǎn)

    虛擬局域網(wǎng)就是虛擬的,不是真實(shí)存在的。虛擬局域網(wǎng)也就是人們通常所說的VLAN。簡(jiǎn)單的來說,虛擬局域網(wǎng)是一個(gè)不受位置限制的,并且還是在一定的組織

294045