1. 程式人生 > >Windows網路程式設計(八):非阻塞模式(非同步模式)

Windows網路程式設計(八):非阻塞模式(非同步模式)

前面幾篇文章介紹的無論是TCP通訊還是UDP通訊都是阻塞式的,它們在執行recv或recvfrom時會線上程中等待,直到接收到資訊為止,所以在應用的時候一般都需要開闢子執行緒,在子執行緒裡專門做這類事情,不然它會影響主執行緒的執行。 

系統提供三種網路模型去處理這類需求,它們都基於非同步模式,在非同步模式下執行recv或recvfrom時不會線上程中等待,它會接著執行下去,當接收到訊息時,系統提供了一套機制可以通知到應用程式,非同步模式避免了開闢多餘的執行緒,也避免了執行緒卡死。

這三種網路模型分別是:

  • 訊息選擇模型
  • 完成埠模型
  • 事件模型