網路程式設計的4種IO模型

2022-05-03 07:18:09 字數 540 閱讀 1286

select

fd_zero初始化

fd_set將socket加進去

select輪詢

當socket的事件發生時,fd_set裡面有相關的socket,如果沒有socket有事件發生,select返回0

fd_isset檢測,socket是否還在fd_set裡,是的話,表示這個socket有事件發生

wsaasyncselect

wsaasyncselect將socket與對應的視窗過程繫結,並指定這個socket對哪些事件感興趣

wsagetselecterror(lparam)得到錯誤

wsagetselectevent(lparam)得到是哪個事件

wparam為socket

wsaeventselect

wsacreateevent建立乙個事件

wsaeventselect將socket與事件繫結

wsawaitformultipleevents等待這些事件

wsaenumnetworkevents得到發生的通知fd_accept之類

網路I O模型 5種常見的網路I O模型

阻塞與非阻塞 阻塞就是卡在那兒什麼也不做,雙方之間也沒有資訊溝通。非阻塞就是即使對方不能馬上完成請求,雙方之間也有資訊的溝通。同步與非同步 同步就是一件事件只由乙個過程處理完成,不論阻塞與非阻塞,最後完成這個事情的都是同乙個過程 非同步就是一件事由兩個過程完成,前面乙個過程通知,後面乙個過程接受返回...

《網路程式設計》I O 模型

在分析 i o 模型之前,首先了解 同步 i o 和 非同步 i o 的基本概念 同步 i o 程序呼叫 i o 操作函式時,在 i o 操作函式返回之前,該程序會被掛起 即阻塞 直到 i o 操作完成後返回 非同步 i o 程序呼叫 i o 操作函式時,在 i o 操作函式返回之前,該程序不會被掛...

五種程式設計模型(IO模型)

1 同步非同步,阻塞非阻塞區別聯絡 實際上同步與非同步是針對應用程式與核心的互動而言的。同步過程中程序觸發io操作並等待 也就是我們說的阻塞 或者輪詢的去檢視io操作 也就是我們說的非阻塞 是否完成。非同步過程中程序觸發io操作以後,直接返回,做自己的事情,io交給核心來處理,完成後核心通知程序io...