簡體   English   中英

重疊的I / O與阻塞和非阻塞套接字的概念如何相關?

[英]How does Overlapped I/O relates to the concept of blocking and non-blocking sockets?

我想知道使用重疊I / O是否意味着我在非阻塞模式下使用套接字,或者阻塞和非阻塞套接字的概念與重疊I / O的概念無關。

我要說的是他們彼此之間沒有關系。 套接字的阻塞與非阻塞很簡單。 如果您在非阻塞模式下調用send()recv() ,並且套接字沒有可用的任何內容( send()沒有出站緩沖區空間, recv()沒有入站數據),則會收到錯誤響應WSAWOULDBLOCK 如果處於阻塞模式,則僅在請求的操作完成或發生錯誤之前,該函數才會返回。

但是,I / O重疊更多是委托模式。 它將接受您的WSASend()WSARecv()請求並為您處理。 但是,這不會在函數返回時立即出現。 而是,這些函數接收指向客戶端指定的回調的指針。 發送/接收操作完成后,將通過提供的回調方法通知您。

我要說的是,I / O重疊是為了消除客戶端程序員不斷檢查非阻塞套接字並調用select()進行輪詢的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM