套接字I O模式

2021-04-27 02:41:50 字數 621 閱讀 8936

套接字的i/o模式有6種:阻塞模型,select模型,wsaasyncselect模型,wsaeventselect模型,重疊i/o,以及完成埠。

阻塞模型:乙個套接字操作完成後,另外乙個操作才能進行。

優點:簡單。

缺點:消耗資源多,難擴充套件。

select模型:判斷套接字上是否存在資料,或者能否向乙個套接字寫入資料。select函式在制定的集合中篩選出滿足要求的套接字,應用程式只需要遍歷套接字鍊錶,逐個處理。

優點: 提供多連線。

缺點: 一般只支援64個連線。

wsaasyncselect模型: 非同步通知套接字讀寫資料能力。

優點: 非同步通知,無需阻塞。

缺點: 一般只支援64個連線,而且需要視窗控制代碼。

wsaeventselect模型:非同步通知套接字讀寫資料能力。

優點: 非同步通知,無需阻塞。

缺點: 一般只支援64個連線。

重疊i/o模型:採用重疊的資料結構,一次投遞乙個或者多個i/o請求。對多套接字情況,每個套接字操作都需要乙個重疊的資料結構。不同的套接字需要不同的重疊資料結構,同乙個套接字的不同操作,比如讀和寫,也需要不同的重疊資料結構。所以說,重疊的是同乙個套接字操作上的資料處理,而不是不同的套接字或者不同的操作。

套接字i o模型

當套接字建立時,預設情況下是工作在阻塞模式。在阻塞模式下,執行i o的winsock呼叫 如send 和recv 一直到操作完成時才返回。比如呼叫recv 函式,如果對應的緩衝區沒有資料到來。呼叫者將會一直等待下去,直到有資料到達為止。1 阻塞 blocking 模型 對於以下函式呼叫 int ir...

套接字I O模型

在unix下可用的5種i o模型為 柱塞i o模型 非柱塞i o模型 i o復用 select和poll 訊號驅動式i o sigio 非同步i o 柱塞式i o模型 最流行的i o模型是柱塞式i o模型,預設情況下所有套接字都是用柱塞的,以資料報套接字為例子,如圖 程序呼叫recvfrom,其系統...

Windows套接字I O模型

兩中模式執行i o操作 阻塞模式 執行i o的winsock呼叫 如send和recv 一直到操作完成才返回。非阻塞模式 winsock函式會立即返回 1.select 選擇 模型 1 增加乙個套接字集合fd 2 設定乙個可讀或者可寫的套接字集合fd1 3 使用select函式 可設定等待的時長 獲...