通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告_第1頁(yè)
通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告_第2頁(yè)
通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告_第3頁(yè)
通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告_第4頁(yè)
通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、通信網(wǎng)絡(luò)實(shí)驗(yàn)報(bào)告姓名:陸超、潘豪學(xué)號(hào):01101486 、01101491 班級(jí):011015 2013.12.28實(shí)驗(yàn)內(nèi)容1.廣域網(wǎng)實(shí)驗(yàn)2.網(wǎng)絡(luò)數(shù)據(jù)獲取3.socket編程實(shí)驗(yàn)4.UDP/TCP通信實(shí)驗(yàn)5.數(shù)據(jù)鏈路層協(xié)議的設(shè)計(jì)與實(shí)現(xiàn)6.滑動(dòng)窗口協(xié)議實(shí)驗(yàn)7.嗅探器的實(shí)現(xiàn)1、 廣域網(wǎng)實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康?.了解廣域網(wǎng)的組成和工作原理。2.學(xué)會(huì)使用廣域網(wǎng)中常用的軟件以及協(xié)議配置。實(shí)驗(yàn)設(shè)備1. 微機(jī)2. 廣域網(wǎng)絡(luò)實(shí)驗(yàn)原理在廣域網(wǎng)中中討論的主要問(wèn)題1.網(wǎng)絡(luò)的結(jié)構(gòu)2.路由器的配置3.分組數(shù)據(jù)的轉(zhuǎn)發(fā)方式4.網(wǎng)絡(luò)的連通性廣域網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)教育網(wǎng)是典型的廣域網(wǎng)絡(luò)。1.主樓和科技樓內(nèi)部有各自的局域網(wǎng)絡(luò),這些網(wǎng)絡(luò)又通過(guò)路由

2、器連接在一起,最后這兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)又和網(wǎng)管中心的網(wǎng)絡(luò)設(shè)備之間通過(guò)光纖環(huán)網(wǎng)連接2.這個(gè)光纖環(huán)網(wǎng)構(gòu)成了我們校園網(wǎng)的骨干傳輸網(wǎng)3.校園網(wǎng)又和西北網(wǎng)管中心之間通過(guò)155MBPS的光纖線路連接。 4.西北網(wǎng)管中心又通過(guò)2.5GBPS的光纖線路和中國(guó)教育網(wǎng)絡(luò)中心相連接,通過(guò)教育網(wǎng)聯(lián)入INTERNET。5.我們的實(shí)驗(yàn)環(huán)境是一個(gè)局域網(wǎng)。局域網(wǎng)中的主機(jī)通過(guò)網(wǎng)管中心分配的網(wǎng)關(guān)可以登錄到INTERNET。IP地址的分配1.通常,內(nèi)部的IP地址采用的是INTERNET網(wǎng)絡(luò)的專(zhuān)用網(wǎng)地址。這些地址通常是192.168.0段。2.本次實(shí)驗(yàn)主要通過(guò)PING、NETSTAT、ROUTE命令來(lái)了解IP數(shù)據(jù)報(bào)在網(wǎng)絡(luò)中路由選擇的過(guò)程。

3、常用命令1.PING:主要用來(lái)測(cè)試網(wǎng)絡(luò)的連通性。它使用了ICMP回送請(qǐng)求與回送回答報(bào)文。2.NETSTAT:主要功能是顯示路由表的信息3.ROUTE :主要功能是顯示、修改、刪除、添加路由表實(shí)驗(yàn)要求1. 利用PING 命令在網(wǎng)關(guān)機(jī)工作前后分別測(cè)試網(wǎng)絡(luò)的連通性。(網(wǎng)關(guān)不會(huì)關(guān))2. 利用route命令配置主機(jī)的路由器表,并寫(xiě)出實(shí)驗(yàn)室內(nèi)IP分組傳送經(jīng)過(guò)的所有可能路由。3.刪除默認(rèn)網(wǎng)關(guān)后,運(yùn)行HTTP高層進(jìn)程,觀察結(jié)果?;謴?fù)默認(rèn)網(wǎng)關(guān)。4.利用netstat命令在網(wǎng)關(guān)機(jī)工作前后分別測(cè)試路由器的工作情況,開(kāi)啟幾個(gè)高層應(yīng)用進(jìn)程,對(duì)高層協(xié)議的運(yùn)行情況進(jìn)行統(tǒng)計(jì)。指出其地址、端口號(hào)、當(dāng)前的狀態(tài)等信息。(網(wǎng)關(guān)不會(huì)關(guān)

4、)2、 網(wǎng)絡(luò)數(shù)據(jù)獲取1.網(wǎng)絡(luò)監(jiān)聽(tīng)是一種常用的被動(dòng)式網(wǎng)絡(luò)攻擊方法,能幫助入侵者輕易獲得用其他方法很難獲得的信息,包括用戶口令、賬號(hào)、敏感數(shù)據(jù)、IP地址、路由信息、TCP套接字號(hào)等。2.管理員使用網(wǎng)絡(luò)監(jiān)聽(tīng)工具可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動(dòng)情況以及網(wǎng)絡(luò)上傳輸?shù)男畔ⅰ?shí)驗(yàn)?zāi)康?.掌握sniffer捕獲數(shù)據(jù)包的技術(shù)2.了解一般局域網(wǎng)內(nèi)監(jiān)聽(tīng)手段3.掌握如何防范攻擊原理簡(jiǎn)介1.嗅探器(sniffer)是利用計(jì)算機(jī)的網(wǎng)絡(luò)接口截獲目的地為其他計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種技術(shù)。它工作在網(wǎng)絡(luò)的底層,把網(wǎng)絡(luò)傳輸?shù)娜繑?shù)據(jù)記錄下來(lái)。2.嗅探器可以幫助網(wǎng)絡(luò)管理員查找網(wǎng)絡(luò)漏洞和檢測(cè)網(wǎng)絡(luò)性能。嗅探器可以分析網(wǎng)絡(luò)的流量,以便找出所關(guān)心

5、的網(wǎng)絡(luò)中潛在的問(wèn)題。3.不同傳輸介質(zhì)網(wǎng)絡(luò)的可監(jiān)聽(tīng)性是不同的。4.一般來(lái)說(shuō),以太網(wǎng)被監(jiān)聽(tīng)的可能性比較高,因?yàn)橐蕴W(wǎng)是一個(gè)廣播型的網(wǎng)絡(luò)5.微波和無(wú)線網(wǎng)被監(jiān)聽(tīng)的可能性同樣比較高,因?yàn)闊o(wú)線電本身是一個(gè)廣播型的傳輸媒介,彌散在空中的無(wú)線電信號(hào)可以被很輕易的截獲。6.在以太網(wǎng)中,嗅探器通過(guò)將以太網(wǎng)卡設(shè)置成混雜模式來(lái)捕獲數(shù)據(jù)。7.因?yàn)橐蕴W(wǎng)協(xié)議的工作方式是將要發(fā)送的數(shù)據(jù)包發(fā)往連接在一起的所有主機(jī),包中包含著應(yīng)該接收數(shù)據(jù)包主機(jī)的正確地址,只有與數(shù)據(jù)包中目標(biāo)地址一致的那臺(tái)主機(jī)才能接收。8.但是,當(dāng)主機(jī)工作監(jiān)聽(tīng)模式下,無(wú)論數(shù)據(jù)包中的目標(biāo)地址是什么,主機(jī)都將接收(當(dāng)然只能監(jiān)聽(tīng)經(jīng)過(guò)自己網(wǎng)絡(luò)接口的那些包)。9.因特網(wǎng)上

6、有很多使用以太網(wǎng)協(xié)議的局域網(wǎng),許多主機(jī)通過(guò)電纜、集線器連在一起。10.當(dāng)同一網(wǎng)絡(luò)中的兩臺(tái)主機(jī)通信的時(shí)候,源主機(jī)將寫(xiě)有目的主機(jī)地址的數(shù)據(jù)包直接發(fā)向目的主機(jī)。但這種數(shù)據(jù)包不能在IP層直接發(fā)送,必須從TCP/IP協(xié)議的IP層交給網(wǎng)絡(luò)接口,也就是數(shù)據(jù)鏈路層,而網(wǎng)絡(luò)接口是不會(huì)識(shí)別IP地址的,11.因此在網(wǎng)絡(luò)接口數(shù)據(jù)包又增加了一部分以太幀頭的信息。在幀頭中有兩個(gè)域,分別為只有網(wǎng)絡(luò)接口才能識(shí)別的源主機(jī)和目的主機(jī)的物理地址,這是一個(gè)與IP地址相對(duì)應(yīng)的48位的以太地址。傳輸數(shù)據(jù)時(shí),包含物理地址的幀從網(wǎng)絡(luò)接口(網(wǎng)卡)發(fā)送到物理的線路上如果局域網(wǎng)是由一條粗纜或細(xì)纜連接而成,則數(shù)字信號(hào)在電纜上傳輸,能夠到達(dá)線路上的每

7、一臺(tái)主機(jī)。當(dāng)使用集線器時(shí),由集線器再發(fā)向連接在集線器上的每一條線路,數(shù)字信號(hào)也能到達(dá)連接在集線器上的每一臺(tái)主機(jī)當(dāng)數(shù)字信號(hào)到達(dá)一臺(tái)主機(jī)的網(wǎng)絡(luò)接口時(shí),正常情況下,網(wǎng)絡(luò)接口讀入數(shù)據(jù)幀,進(jìn)行檢查,如果數(shù)據(jù)幀中攜帶的物理地址是自己的或者是廣播地址,則將數(shù)據(jù)幀交給上層協(xié)議軟件,也就是IP層軟件,否則就將這個(gè)幀丟棄。對(duì)于每一個(gè)到達(dá)網(wǎng)絡(luò)接口的數(shù)據(jù)幀,都要進(jìn)行這個(gè)過(guò)程。然而,當(dāng)主機(jī)工作在監(jiān)聽(tīng)模式下,所有的數(shù)據(jù)幀都將被交給上層協(xié)議軟件處理。而且,當(dāng)連接在同一條電纜或集線器上的主機(jī)被邏輯地分為幾個(gè)子網(wǎng)時(shí),如果一臺(tái)主機(jī)處于監(jiān)聽(tīng)模式下,它還能接收到發(fā)向與自己不在同一子網(wǎng)(使用了不同的掩碼、IP地址和網(wǎng)關(guān))的主機(jī)的數(shù)據(jù)包

8、。也就是說(shuō),在同一條物理信道上傳輸?shù)乃行畔⒍伎梢员唤邮盏?。另外,現(xiàn)在網(wǎng)絡(luò)中使用的大部分協(xié)議都是很早設(shè)計(jì)的,許多協(xié)議的實(shí)現(xiàn)都是基于一種非常友好的、通信的雙方充分信任的基礎(chǔ)之上,許多信息以明文發(fā)送。因此,如果用戶的賬戶名和口令等信息也以明文的方式在網(wǎng)上傳輸,而此時(shí)一個(gè)黑客或網(wǎng)絡(luò)攻擊者正在進(jìn)行網(wǎng)絡(luò)監(jiān)聽(tīng),只要具有初步的網(wǎng)絡(luò)和TCP/IP協(xié)議知識(shí),便能輕易地從監(jiān)聽(tīng)到的信息中提取出感興趣的部分。同理,正確的使用網(wǎng)絡(luò)監(jiān)聽(tīng)技術(shù)也可以發(fā)現(xiàn)入侵并對(duì)入侵者進(jìn)行追蹤定位,在對(duì)網(wǎng)絡(luò)犯罪進(jìn)行偵查取證時(shí)獲取有關(guān)犯罪行為的重要信息,成為打擊網(wǎng)絡(luò)犯罪的有力手段。實(shí)驗(yàn)環(huán)境網(wǎng)內(nèi)設(shè)有3臺(tái)主機(jī),IP地址分別為1

9、,01,2其中2主機(jī)中安裝sniffer軟件Ethereal在主機(jī)01上運(yùn)行FTP服務(wù)器實(shí)驗(yàn)報(bào)告詳細(xì)描述實(shí)驗(yàn)過(guò)程。仔細(xì)查看截獲的數(shù)據(jù),分析通過(guò)嗅探器能夠獲取哪些信息。(本子太爛無(wú)法在機(jī)器上運(yùn)行兩臺(tái)以上的模擬器,所以就只弄了一臺(tái)的)思考題1. 根據(jù)嗅探器工作原理,分析如何抵御嗅探器攻擊?網(wǎng)絡(luò)嗅探器屬于第二層的攻擊,可以從以下幾方面進(jìn)行預(yù)防: 1)交換網(wǎng)絡(luò)。隨著交換機(jī)的成本和價(jià)格的大幅度降低,交換機(jī)已成為非常有效的使sniffer失效的設(shè)備。只要防止以上所提到的幾種欺騙基本可避免交換網(wǎng)絡(luò)中嗅探器的運(yùn)行,進(jìn)而避免

10、秘密信息的泄漏。如果交換機(jī)具有端口安全保護(hù)功能,開(kāi)啟這種功能,交換機(jī)的每個(gè)端口將只與唯一的地址MAC相關(guān)聯(lián),從而有效地防范MAC地址欺騙和MAC地址淹沒(méi)。對(duì)交換機(jī)每個(gè)端口都手工配置MAC地址,會(huì)給管理員帶來(lái)很大的工作量。一般只對(duì)連接路由器的端口手工配置MAC地址,以防止路由欺騙。 2)加密。黑客對(duì)用戶的口令、賬戶等信息比較敏感。目前有許多軟件包可用于加密連接,可以采用對(duì)用戶的重要數(shù)據(jù)進(jìn)行加密,從而使入侵者即使捕獲到數(shù)據(jù),也無(wú)法將數(shù)據(jù)解密而失去竊聽(tīng)的意義。 3)安全意識(shí)。全部網(wǎng)絡(luò)用戶,必須加強(qiáng)網(wǎng)絡(luò)安全意識(shí),即對(duì)系統(tǒng)進(jìn)行升級(jí),安裝補(bǔ)丁。對(duì)機(jī)密信息必須加密傳送。網(wǎng)絡(luò)管理員經(jīng)常檢查網(wǎng)絡(luò)設(shè)施與配置,關(guān)閉

11、交換機(jī)未使用的端口,盡量停止使用共享式HUB。3、 Socket編程實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模菏炀氄莆誷ocket編程命令實(shí)驗(yàn)內(nèi)容:一個(gè)簡(jiǎn)單的客戶機(jī)/服務(wù)器程序的實(shí)現(xiàn)實(shí)驗(yàn)原理:1.Sockets編程基礎(chǔ)知識(shí)2.基于C的Socket編程相關(guān)函數(shù)和數(shù)據(jù)類(lèi)型實(shí)驗(yàn)內(nèi)容一個(gè)簡(jiǎn)單的客戶機(jī)/服務(wù)器程序的實(shí)現(xiàn) 1.它用套接字接口在TCP連接上發(fā)送消息。 2.允許用戶在一端的機(jī)器上輸入并把文本發(fā)送給另一端機(jī)器的用戶。它是UNIX中talk的一個(gè)簡(jiǎn)化版本,類(lèi)似于WEB 聊天室的核心程序??蛻舳?.客戶端用遠(yuǎn)端的機(jī)器名作為參數(shù)。它調(diào)用UNIX程序gethostbyname把該名字轉(zhuǎn)化為遠(yuǎn)端主機(jī)的IP地址。2.下一步構(gòu)造套接字接

12、口所需的地址數(shù)據(jù)結(jié)構(gòu)(sin)。注意這個(gè)數(shù)據(jù)結(jié)構(gòu)表明我們將一直用套接字與因特網(wǎng)(AF_INET)連接。在這個(gè)例子中,我們用TCP端口號(hào)5432作為共知的服務(wù)器端口號(hào);它恰好不是分配給其他因特網(wǎng)服務(wù)的端口號(hào)。3.建立連接的最后一步是調(diào)用socket和connect。一旦connect操作返回,建立起連接,客戶程序?qū)⑦M(jìn)入主循環(huán),不斷從標(biāo)準(zhǔn)輸入讀文本并通過(guò)套接字發(fā)送。服務(wù)器1.服務(wù)器首先填上自己的端口號(hào)(SERVER_PORT)構(gòu)造地址數(shù)據(jù)結(jié)構(gòu)。2.其次,它并不指明IP地址,從而使應(yīng)用程序可以接受來(lái)自本地任一IP地址的連接。3.然后,服務(wù)器執(zhí)行與被動(dòng)打開(kāi)有關(guān)的初始步驟:建立一個(gè)套接字,將它綁定到本地

13、地址,然后設(shè)置允許同時(shí)連接的最大數(shù)。4.最后,主循環(huán)等待遠(yuǎn)端主機(jī)試圖與之連接,當(dāng)遠(yuǎn)端有一臺(tái)主機(jī)試圖與之連接時(shí),它就接收并輸出連接上送來(lái)的字符實(shí)驗(yàn)原理Sockets編程基礎(chǔ)知識(shí)網(wǎng)絡(luò)編程就是通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與其他程序進(jìn)行通信的程序,Socket編程是網(wǎng)絡(luò)編程的主流工具。Socket API是實(shí)現(xiàn)進(jìn)程間通信的一種編程設(shè)施,也是一種為進(jìn)程間提供底層抽象的機(jī)制。盡管應(yīng)用開(kāi)發(fā)人員很少需要在該層編寫(xiě)代碼,但是理解socket API還是非常重要的。第一,高層設(shè)施是構(gòu)建于socket API之上的,它們是利用socket API提供的操作來(lái)實(shí)現(xiàn)。第二,對(duì)于響應(yīng)時(shí)間要求較高或運(yùn)行于有限資源平臺(tái)上的應(yīng)用,甚至soc

14、ket API是唯一可用的進(jìn)程間通信設(shè)施。socket API出現(xiàn)于20世紀(jì)80年代早期,作為Berkeley Unix(BSD 4.2)操作系統(tǒng)程序庫(kù)來(lái)通過(guò)進(jìn)程間通信功能?,F(xiàn)在主流操作系統(tǒng)都提供socket API。在基于Unix系統(tǒng)中,如BSD、Linux系統(tǒng),socket API是操作系統(tǒng)內(nèi)核的一部分在MS-DOS、Windows OS、OS/2等操作系統(tǒng)中,socket API是以程序庫(kù)形式提供的,如在Windows系統(tǒng)中,socket API被稱(chēng)為Winsock。Socket接口規(guī)范可以適用多種通訊協(xié)議,主要是TCP/IP。TCP/IP是計(jì)算機(jī)互聯(lián)最常適用的網(wǎng)絡(luò)通訊協(xié)議,TCP/IP

15、的核心部分由網(wǎng)絡(luò)操作系統(tǒng)的內(nèi)核實(shí)現(xiàn),應(yīng)用程序通過(guò)編程接口來(lái)訪問(wèn)TCP/IP。TCP/IP使用一個(gè)網(wǎng)絡(luò)地址和一個(gè)服務(wù)端口號(hào)來(lái)惟一地標(biāo)識(shí)設(shè)備。網(wǎng)絡(luò)地址標(biāo)識(shí)網(wǎng)絡(luò)上的特定設(shè)備端口號(hào)標(biāo)識(shí)要連接到的該設(shè)備上的特定服務(wù)網(wǎng)絡(luò)通訊的基本模式如下:每一臺(tái)通訊的主機(jī)都有一個(gè)本網(wǎng)絡(luò)環(huán)境中惟一的IP地址,一臺(tái)主機(jī)上往往有多個(gè)通訊程序存在,每個(gè)這樣的程序都要占用一個(gè)通訊端口。因此,一個(gè)IP地址,一個(gè)通訊端口,就能確定一個(gè)通訊程序的位置。UDP/TCP通信實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康氖炀氄莆誙DP、TCP Client/Server模式的通信原理。實(shí)驗(yàn)內(nèi)容關(guān)于UDP的介紹可以參見(jiàn)教科書(shū)。傳輸控制協(xié)議(Transport Control P

16、rotocol)是一種面向連接的,可靠的傳輸層協(xié)議。面向連接是指一次正常的TCP傳輸需要通過(guò)在TCP客戶端和TCP服務(wù)端建立特定的虛電路連接來(lái)完成,該過(guò)程通常被稱(chēng)為“三次握手”。可靠性可以通過(guò)很多種方法來(lái)提供保證,在這里我們關(guān)心的是數(shù)據(jù)序列和確認(rèn)。TCP通過(guò)數(shù)據(jù)分段(Segment)中的序列號(hào)保證所有傳輸?shù)臄?shù)據(jù)可以在遠(yuǎn)端按照正常的次序進(jìn)行重組,而且通過(guò)確認(rèn)保證數(shù)據(jù)傳輸?shù)耐暾浴Rㄟ^(guò)TCP傳輸數(shù)據(jù),必須在兩端主機(jī)之間建立連接。舉例說(shuō)明,TCP客戶端需要和TCP服務(wù)端建立連接,過(guò)程如圖所示TCP客戶端與服務(wù)端連接過(guò)程第一步中,客戶端向服務(wù)端提出連接請(qǐng)求。這時(shí)TCP SYN標(biāo)志置位??蛻舳烁嬖V服務(wù)

17、端序列號(hào)區(qū)域合法,需要檢查。客戶端在TCP報(bào)頭的序列號(hào)區(qū)中插入自己的ISN。服務(wù)端收到該TCP分段后,在第二步以自己的ISN回應(yīng)(SYN標(biāo)志置位),同時(shí)確認(rèn)收到客戶端的第一個(gè)TCP分段(ACK標(biāo)志置位)。在第三步中,客戶端確認(rèn)收到服務(wù)端的ISN(ACK標(biāo)志置位)。到此為止建立完整的TCP連接,開(kāi)始全雙工模式的數(shù)據(jù)傳輸過(guò)程。實(shí)驗(yàn)內(nèi)容根據(jù)以上內(nèi)容編寫(xiě)一個(gè)TCP Client/Server模式的通信程序。事實(shí)上網(wǎng)絡(luò)程序是由兩個(gè)部分組成的-客戶端和服務(wù)器端。它們的建立步驟如下服務(wù)器端 socket->bind->listen->accept客戶端 socket->connect

18、實(shí)驗(yàn)步驟實(shí)驗(yàn)按下述步驟進(jìn)行:(1) 編寫(xiě)UDP、TCP Client/Server模式的通信程序;TCP Client/Server模式通信程序(我用的是vc 6.0 編寫(xiě)的,加載時(shí)別忘了加上ws2_32.lib)客戶端源代碼:#include<stdio.h>#include<Winsock2.h>void main()/-加載套接字(Socket)WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);err = WSAStartup( wVersionRequ

19、ested, &wsaData );if(err != 0)return;if(LOBYTE(wsaData.wVersion) != 1 |HIBYTE(wsaData.wVersion) != 1)WSACleanup();return;/-SOCKET sockClient = socket(AF_INET,SOCK_STREAM,0); /創(chuàng)建SocketSOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = inet_addr("");addrSrv.sin_family = AF_INET;

20、addrSrv.sin_port = htons(5000);connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); /連接Socketchar recvBuffer100;recv(sockClient,recvBuffer,100,0);/接收數(shù)據(jù)printf("%sn",recvBuffer);send(sockClient,"I got it !",strlen("I got it !")+1,0); /發(fā)送數(shù)據(jù)closesocket(sockClient);W

21、SACleanup();服務(wù)器端代碼:#include<stdio.h>#include<Winsock2.h>void main()/-加載套接字(Socket)WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);err = WSAStartup( wVersionRequested, &wsaData );if(err != 0)return;if(LOBYTE(wsaData.wVersion) != 1 |HIBYTE(wsaData.wVers

22、ion) != 1)WSACleanup();return;/-SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0); /創(chuàng)建SocketSOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(5000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); /綁定Socketlisten(sockSrv,10)

23、; /監(jiān)聽(tīng)socketSOCKADDR_IN addrClient;int len = sizeof(SOCKADDR);while(true)SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrClient,&len); /等待接收數(shù)據(jù)地址char sendBuffer100;sprintf(sendBuffer,"Hello %s !",inet_ntoa(addrClient.sin_addr);send(sockConn,sendBuffer,strlen(sendBuffer)+1,0); /發(fā)送數(shù)據(jù)c

24、har recvBuffer100;recv(sockConn,recvBuffer,100,0);/接收數(shù)據(jù)printf("%sn",recvBuffer);closesocket(sockConn);UDP Client/Server模式的通信程序客戶端源代碼:#include<stdio.h>#include<Winsock2.h>void main()/-加載套接字(Socket)WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);e

25、rr = WSAStartup( wVersionRequested, &wsaData );if(err != 0)return;if(LOBYTE(wsaData.wVersion) != 1 |HIBYTE(wsaData.wVersion) != 1)WSACleanup();return;/-SOCKET sockClient = socket(AF_INET,SOCK_DGRAM,0); /創(chuàng)建SocketSOCKADDR_IN addrSrv;char s20;/printf("請(qǐng)輸入服務(wù)器的ip地址: ");/scanf("%s"

26、,s);addrSrv.sin_addr.S_un.S_addr = inet_addr("8");addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(6000);char recvBuffer100;char sendBuffer100;char Buffer100;int len = sizeof(SOCKADDR);while(true)printf("n請(qǐng)輸入消息: ");gets(sendBuffer);sendto(sockClient,sendBuffer,st

27、rlen(sendBuffer)+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);recvfrom(sockClient,recvBuffer,100,0,(SOCKADDR*)&addrSrv,&len);if('#' = recvBuffer0)sendto(sockClient,"#",strlen("#")+1,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);printf("Chat end !n");break;s

28、printf(Buffer,"Server say : %s",recvBuffer);printf("n%sn",Buffer);closesocket(sockClient);WSACleanup();服務(wù)器端代碼:#include<stdio.h>#include<Winsock2.h>void main()/-加載套接字(Socket)WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD(1,1);err = WSAStart

29、up( wVersionRequested, &wsaData );if(err != 0)return;if(LOBYTE(wsaData.wVersion) != 1 |HIBYTE(wsaData.wVersion) != 1)WSACleanup();return;/-SOCKET sockSrv = socket(AF_INET,SOCK_DGRAM,0);/創(chuàng)建SocketSOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);addrSrv.sin_family = AF_INET;addr

30、Srv.sin_port = htons(6000);bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR); /綁定Socketchar recvBuffer100;char sendBuffer100;char Buffer100;SOCKADDR_IN addrClient;int len = sizeof(SOCKADDR);while(true)recvfrom(sockSrv,recvBuffer,100,0,(SOCKADDR*)&addrClient,&len);if('#' = recvBuffer0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論