亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

socket概念

發布時間:2020-08-11 08:09:24 來源:網絡 閱讀:134 作者:yinjiaqi006 欄目:web開發

不管socket,還是FIFO、管道、終端,對我們來說,一切都是文件,一切都是流。在信息 交換的過程中,我們都是對這些流進行數據的收發操作,簡稱為I/O操作(input and output),往流中讀出數據,系統調用read,寫入數據,系統調用write。不過話說回來了 ,計算機里有這么多的流,我怎么知道要操作哪個流呢?對,就是文件描述符,即通常所說的fd,一個fd就是一個整數,所以,對這個整數的操作,就是對這個文件(流)的操作。我們創建一個socket,通過系統調用會返回一個文件描述符,那么剩下對socket的操作就會轉化為對這個描述符的操作。不能不說這又是一種分層和抽象的思想。
同步IO,是一種用戶空間與內核空間的調用發起方式。同步IO是指用戶空間線程是主動發起IO請求的一方,內核空間是被動接受方。
異步IO則反過來,是指內核kernel是主動發起IO請求的一方,用戶線程是被動接受方。
阻塞IO,指的是需要內核IO操作徹底完成后,才返回到用戶空間,執行用戶的操作。阻塞指的是用戶空間程序的執行狀態,用戶空間程序需等到IO操作徹底完成。傳統的IO模型都是同步阻塞IO。
非阻塞IO,指的是用戶程序不需要等待內核IO操作完成后,內核立即返回給用戶一個狀態值,用戶空間無需等到內核的IO操作徹底完成,可以立即返回用戶空間,執行用戶的操作,處于非阻塞的狀態。
I/O多路復用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒,能夠通知程序進行相應的操作。
select的本質是采用32個整數的32位,即3232= 1024來標識,fd值為1-1024。當fd的值超過1024限制時,就必須修改FD_SETSIZE的大小。這個時候就可以標識32max值范圍的fd。
poll與select不同,通過一個pollfd數組向內核傳遞需要關注的事件,故沒有描述符個數的限制,pollfd中的events字段和revents分別用于標示關注的事件和發生的事件,故pollfd數組只需要被初始化一次。
epoll還是poll的一種優化,返回后不需要對所有的fd進行遍歷,在內核中維持了fd的列表。select和poll是將這個內核列表維持在用戶態,然后傳遞到內核中。與poll/select不同,epoll不再是一個單獨的系統調用,而是由epoll_create/epoll_ctl/epoll_wait三個系統調用組成,后面將會看到這樣做的好處。epoll在2.6以后的內核才支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

峡江县| 神农架林区| 苏尼特左旗| 陇南市| 乐亭县| 辛集市| 南皮县| 西昌市| 衡阳县| 商都县| 保山市| 安阳县| 乌审旗| 祁东县| 武山县| 桂东县| 兴义市| 连南| 萍乡市| 新田县| 富源县| 都安| 即墨市| 新野县| 田林县| 民乐县| 金阳县| 永顺县| 威海市| 金坛市| 壶关县| 玉田县| 甘洛县| 沁阳市| 海原县| 定陶县| 温州市| 潞西市| 南靖县| 银川市| 云和县|