Windows Socket編程實(shí)驗(yàn)要求

Windows Socket編程實(shí)驗(yàn)要求

ID:44273176

大?。?02.50 KB

頁數(shù):35頁

時(shí)間:2019-10-20

Windows Socket編程實(shí)驗(yàn)要求_第1頁
Windows Socket編程實(shí)驗(yàn)要求_第2頁
Windows Socket編程實(shí)驗(yàn)要求_第3頁
Windows Socket編程實(shí)驗(yàn)要求_第4頁
Windows Socket編程實(shí)驗(yàn)要求_第5頁
資源描述:

《Windows Socket編程實(shí)驗(yàn)要求》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、WindowsSocket編程實(shí)驗(yàn)要求WindowsSockets編程簡(jiǎn)介WindowsSockets簡(jiǎn)介基本概念數(shù)據(jù)結(jié)構(gòu)WinSock庫函數(shù)程序結(jié)構(gòu)WindowsSockets簡(jiǎn)介WindowsSockets(套接字)是在Windows下一套開放的、支持多種協(xié)議的網(wǎng)絡(luò)編程接口規(guī)范。為Windows下網(wǎng)絡(luò)異步通信提供了一種方便的開發(fā)和運(yùn)行環(huán)境。WindowsSockets規(guī)范建立在BSDUNIX中實(shí)現(xiàn)的Berkeley套接字模型上,這個(gè)模型現(xiàn)在已是TCP/IP網(wǎng)絡(luò)的標(biāo)準(zhǔn)。它獨(dú)立于底層的協(xié)議。許多網(wǎng)絡(luò)供應(yīng)商在網(wǎng)絡(luò)協(xié)議中支持WindowsSockets,包括TCP/IP、DECNet、IPX/S

2、PX等。目前主要是TCP/IPWindowsSocketsDLL。原理示意圖工作模式TCP/IP應(yīng)用服務(wù)采用客戶機(jī)/服務(wù)器工作模式,服務(wù)器端啟動(dòng)守護(hù)進(jìn)程,等待客戶端的請(qǐng)求;服務(wù)器對(duì)應(yīng)客戶端的請(qǐng)求,派生子進(jìn)程與客戶進(jìn)程進(jìn)行數(shù)據(jù)通信,提供服務(wù)??蛻魴C(jī)/服務(wù)器工作模式服務(wù)器先啟動(dòng):1)打開一通道,告之本地主機(jī)愿意在某一公認(rèn)的地址(端口,如FTP為21)接收客戶請(qǐng)求。2)等待客戶請(qǐng)求到達(dá)該端口。3)接收客戶請(qǐng)求,處理請(qǐng)求。4)轉(zhuǎn)2),等待另一客戶請(qǐng)求??蛻舴剑?)打開一通道,并連接到服務(wù)器的端口上。2)向服務(wù)器發(fā)服務(wù)請(qǐng)求報(bào)文,等待應(yīng)答;繼續(xù)請(qǐng)求……3)請(qǐng)求結(jié)束,關(guān)閉通道?;靖拍钐捉幼郑⊿ocket

3、):網(wǎng)絡(luò)通信的基本構(gòu)件,它是可以被命名和尋址的通信端點(diǎn),每一個(gè)套接字與一個(gè)進(jìn)程相連。TCP/IP應(yīng)用程序之間的通信通過Socket進(jìn)行。服務(wù)器擁有全局公認(rèn)的Socket,任何客戶端都可以向它發(fā)出連接請(qǐng)求和信息請(qǐng)求??蛻舳讼虿僮飨到y(tǒng)申請(qǐng)一個(gè)Socket,系統(tǒng)為之分配一個(gè)Socket號(hào)。套接字類型流式套接字SOCK_STREAM面向連接,可靠,數(shù)據(jù)無錯(cuò),無重復(fù)的發(fā)送,且按發(fā)送順序接收的服務(wù)。數(shù)據(jù)報(bào)式套接字SOCK_DGRAM無連接服務(wù)。數(shù)據(jù)包以獨(dú)立方式發(fā)送,數(shù)據(jù)可能有錯(cuò)、有重復(fù)、有丟失,接收順序混亂。在WinSock1.1#defineSOCK_STREAM1/streamsocket/#def

4、ineSOCK_DGRAM2/datagramsocket/端口傳輸層和網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供了進(jìn)程通信能力。網(wǎng)絡(luò)通信的最終地址不僅僅是主機(jī)地址,還包括可以描述進(jìn)程的某種標(biāo)識(shí)符;端口是一種抽象的軟件結(jié)構(gòu)(包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū))。每個(gè)端口都有一個(gè)端口號(hào),TCP/IP的TCP和UDP的端口號(hào)互相獨(dú)立。小于255的端口號(hào)作為保留端口。相關(guān)五元組半相關(guān)(三元組)(協(xié)議、本地地址、本地端口號(hào))它在網(wǎng)絡(luò)中可以全局唯一地標(biāo)志一個(gè)進(jìn)程,它指定了連接的每半部分。全相關(guān)(相關(guān)五元組)(協(xié)議、本地地址、本地端口號(hào)、遠(yuǎn)程地址、遠(yuǎn)程端口號(hào))創(chuàng)建一個(gè)套接字通過套接字與遠(yuǎn)程應(yīng)用建立連接阻塞(blo

5、cking)兩種模式:阻塞模式(blockingmode)非阻塞模式(non-blockingmode)。阻塞模式(或稱同步模式Synchronous)的socket的函數(shù)直到操作完成才返回。調(diào)用返回之前,該socket不能做任何其它事情。在BerkeleySockets中,套接字的默認(rèn)工作模式是阻塞模式非阻塞模式(異步操作operatingasynchronously),則調(diào)用立即返回。WindowsSockets鼓勵(lì)使用非阻塞的異步操作,用消息來驅(qū)動(dòng)可能引起阻塞的網(wǎng)絡(luò)連接和數(shù)據(jù)傳輸函數(shù)。基本數(shù)據(jù)結(jié)構(gòu)Winsock.h定義了Winsock.dll使用的數(shù)據(jù)結(jié)構(gòu)和函數(shù)SOCKET句柄數(shù)據(jù)類型

6、(套接字描述符/套接字號(hào))typedefunsignedintu_int;typedefu_intSOCKET;網(wǎng)絡(luò)地址結(jié)構(gòu):WinSock使用SOCKADDR_IN結(jié)構(gòu)來指定本地或與之建立socket連接的遠(yuǎn)程端點(diǎn)地址。structin_addr{union{struct{u_chars_b1,s_b2,s_b3,s_b4;}s_un_b;struct{u_shorts_w1,s_w2;}s_un_w;u_longs_addr;};typedefstructsockaddr_inSOCKADDR_IN;/Socketaddress,internetstyle./structsockaddr

7、_in{shortsin_family;//地址族AF_INETu_shortsin_port;//端口structin_addrsin_addr;//IP地址charsin_zero[8];//填充位};WinSock庫函數(shù)WindowsSockets庫函數(shù)分為三類:1.套接字函數(shù)2.數(shù)據(jù)庫函數(shù)3.擴(kuò)展函數(shù)-------為適應(yīng)Windows下基于消息的網(wǎng)絡(luò)編程的異步擴(kuò)展函數(shù)標(biāo)準(zhǔn)socket函數(shù)(23個(gè))ac

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。