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