在Windows網絡編程中,一般我們要用到的網絡模型就5種, 分別是, select模型,WSAAsyncSelect模型,WSAEventSelect模型,重疊模型, 完成端口模型。
這幾種模型都可以用在網絡開發中,但是根據不同的項目和不同的環境,有不同的選擇,如果服務器端的連接數不是很多時,假如100以內,這幾種模型都可以用,完成端口模型在連接數不多時顯的有點復雜了, select模型,WSAAsyncSelect模型,WSAEventSelect模型更適合用在客戶端連接數不多的情況。
WSAAsyncSelect模型更適合用在有窗口的客戶端程序中,因為它是這幾個模型中,唯一和窗口句柄和窗口過程關聯的模型,如果沒有窗口的客戶端程序中, select模型,WSAEventSelect模型都可以用, select模型更簡單一些。
最后我們來談談完成端口模型, 完成端口模型是比較復雜的,它適合用在上千個客戶連接的服務器開發,我覺的它和前面幾個模型最大不同之處在與,它是在每次網絡事件觸發前,將函數注冊,而其他的模型是事件觸發時調用相應的網絡事件函數(呵呵,不知道Windows內核為什么要這么做)。