資源描述:
《深入WINDOWS socket編程整合版》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、第一章簡介1.1什么是WindowsSockets規(guī)范?WindowsSockets規(guī)范以U.C.Berkeley大學(xué)BSDUNIX中流行的Socket接口為范例定義了一套MicosoftWindows下網(wǎng)絡(luò)編程接口。它不僅包含了人們所熟悉的BerkeleySocket風(fēng)格的庫函數(shù);也包含了一組針對Windows的擴展庫函數(shù),以使程序員能充分地利用Windows消息驅(qū)動機制進行編程。WindowsSockets規(guī)范本意在于提供給應(yīng)用程序開發(fā)者一套簡單的API,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。此外,在一個特定版本W(wǎng)indows的基礎(chǔ)上,WindowsS
2、ockets也定義了一個二進制接口(ABI),以此來保證應(yīng)用WindowsSocketsAPI的應(yīng)用程序能夠在任何網(wǎng)絡(luò)軟件供應(yīng)商的符合WindowsSockets協(xié)議的實現(xiàn)上工作。因此這份規(guī)范定義了應(yīng)用程序開發(fā)者能夠使用,并且網(wǎng)絡(luò)軟件供應(yīng)商能夠?qū)崿F(xiàn)的一套庫函數(shù)調(diào)用和相關(guān)語義。遵守這套WindowsSockets規(guī)范的網(wǎng)絡(luò)軟件,我們稱之為WindowsSockets兼容的,而WindowsSockets兼容實現(xiàn)的提供者,我們稱之為WindowsSockets提供者。一個網(wǎng)絡(luò)軟件供應(yīng)商必須百分之百地實現(xiàn)WindowsSockets規(guī)范才能做到現(xiàn)Windo
3、wsSockets兼容。任何能夠與WindowsSockets兼容實現(xiàn)協(xié)同工作的應(yīng)用程序就被認為是具有WindowsSockets接口。我們稱這種應(yīng)用程序為WindowsSockets應(yīng)用程序。WindowsSockets規(guī)范定義并記錄了如何使用API與Internet協(xié)議族(IPS,通常我們指的是TCP/IP)連接,尤其要指出的是所有的WindowsSockets實現(xiàn)都支持流套接口和數(shù)據(jù)報套接口.應(yīng)用程序調(diào)用WindowsSockets的API實現(xiàn)相互之間的通訊。WindowsSockets又利用下層的網(wǎng)絡(luò)通訊協(xié)議功能和操作系統(tǒng)調(diào)用實現(xiàn)實際的通訊工
4、作。它們之間的關(guān)系如圖1-1。應(yīng)用程序1應(yīng)用程序2網(wǎng)絡(luò)編程界面,例如WindowsSockets網(wǎng)絡(luò)通訊協(xié)議服務(wù)界面,例如TCP/IP操作系統(tǒng),例如Windows物理通訊介質(zhì)圖1-1應(yīng)用程序與WindowsSockets關(guān)系圖雖然我們并不反對使用這一套API來實現(xiàn)另一通訊協(xié)議棧(而且我們期望在將來規(guī)范的修改中能夠討論這個問題),但這種用法已經(jīng)超出了我們這一份規(guī)范所規(guī)定的范圍,我們在此將不作討論。1.2Bekeley套接口WindowsSockets規(guī)范是建立在Bekeley套接口模型上的。這個模型現(xiàn)在已是TCP/IP網(wǎng)絡(luò)的標準。它提供了習(xí)慣于UNIX
5、套接口編程的程序員極為熟悉的環(huán)境,并且簡化了移植現(xiàn)有的基于套接口的應(yīng)用程序源代碼的工作。WindowsSocketsAPI也是和4.3BSD的要求一致的。1.3MicrosoftWindows和針對Windows的擴展這一套WindowsSocketsAPI能夠在所有3.0以上版本的Windows和所有WindowsScokets實現(xiàn)上使用,所以它不僅為WindwosSockets實現(xiàn)和WindowsSockets應(yīng)用程序提供了16位操作環(huán)境,而且也提供了32位操作環(huán)境。WindowsSockets也支持多線程的Windows進程。一個進程包含了一個
6、或多個同時執(zhí)行的線程。在Windows3.1非多線程版本中,一個任務(wù)對應(yīng)了一個僅具有單個線程的進程。而我們在本書中所提到的線程均是指在多線程Windows環(huán)境中的真正意義的線程。在非多線程環(huán)境中(例如Windows3.0)這個術(shù)語是指WindowsSockets進程.WindowsSockets規(guī)范中的針對Windows的擴展部分為應(yīng)用程序開發(fā)者提供了開發(fā)具有Windows應(yīng)用軟件的功能。它有利于使程序員寫出更加穩(wěn)定并且更加高效的程序,也有助于在非占先Windows版本中使多個應(yīng)用程序在多任務(wù)情況下更好地運作。除了WSAStartup()和WSACl
7、eanup()兩個函數(shù)除外,其他的Windows擴展函數(shù)的使用不是強制性的。1.4這份規(guī)范的地位WindowsSockets是一份獨立的規(guī)范。它的產(chǎn)生和存在是為了造益于應(yīng)用程序開發(fā)者,網(wǎng)絡(luò)軟件供應(yīng)商和廣大計算機用戶。這份規(guī)范的每一份正式出版的版本(非草稿)實際上代表了為網(wǎng)絡(luò)軟件供應(yīng)商實現(xiàn)所需和應(yīng)用程序開發(fā)者所用的一整套API。關(guān)于這套規(guī)范的討論和改進還正在進行之中。這樣的討論主要是通過Internet上的一個電子郵件論壇-winsock@microdyne.com進行的。同時也有不定期的會議舉行。會議的具體內(nèi)容會在電子郵件論壇上發(fā)表。1.5曾經(jīng)作過的
8、修改1.5.1WindowsSockets1.0WindowsSockets1.0代表了網(wǎng)絡(luò)軟件供應(yīng)商和用戶