


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于TCP協(xié)議的簡單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)
1
引言1.1
課題背景即時(shí)通信是一個(gè)終端連往一個(gè)即時(shí)通信網(wǎng)路的服務(wù)。即時(shí)通信不同于e-mail在于它的交談是實(shí)時(shí)的。大部分的即時(shí)通信服務(wù)提供了presenceawareness的特性──顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在在線與能否與聯(lián)絡(luò)人交談。最早的即時(shí)通信軟件是ICQ,ICQ是英文中Iseekyou的諧音,意思是我找你。四名以色列青年于1996年7月成立Mirabilis公司,并在11月份發(fā)布了最初的ICQ版本,在六個(gè)月內(nèi)有85萬用戶注冊(cè)使用。在因特網(wǎng)上受歡迎的即時(shí)通信服務(wù)包含了MSNMessenger、AOLInstantMessenger、Yahoo!Messenger、NETMessengerService、Jabber、ICQ與QQ。這些服務(wù)有賴于許多想法更久的(與普遍)的在線聊天媒介,如InternetRelayChat一樣知名。1970年代早期,一種更早的即時(shí)通信形式是柏拉圖系統(tǒng)(PLATOsystem)。之后在1980年代,UNIX/Linux的交談實(shí)時(shí)信息被廣泛的使用于工程師與學(xué)術(shù)界,1990年代即時(shí)通信更跨越了因特網(wǎng)交流。1996年11月,ICQ是首個(gè)廣泛被非UNIX/Linux使用者用于因特網(wǎng)的即時(shí)通信軟件。在ICQ的介紹之后,同時(shí)在許多地方有一定數(shù)量的即時(shí)通信方式發(fā)展,且各式的即時(shí)通信程序有獨(dú)立的協(xié)議,無法彼此互通。這引導(dǎo)使用者同時(shí)執(zhí)行兩個(gè)以上的即時(shí)通信軟件,或者他們可以使用支持多協(xié)議的終端軟件,如Gaim、Trillian或Jabber。近年來,許多即時(shí)通信服務(wù)開始提供視訊會(huì)議的功能,網(wǎng)絡(luò)電話(VoIP),與網(wǎng)絡(luò)會(huì)議服務(wù)開始整合為兼有影像會(huì)議與實(shí)時(shí)信息的功能。于是,這些媒體的分別變的越來越模糊。1.2
國內(nèi)外研究現(xiàn)狀1.2.1
國外研究現(xiàn)狀當(dāng)今,國際上對(duì)網(wǎng)絡(luò)通信系統(tǒng)研究的較好的公司有,思科,Sun,Ms等公司,思科主要研究的是底層的傳輸;MS,Sun公司研究的是應(yīng)用層。其中ms公司憑借其在操作系統(tǒng)的壟斷地位,為了在網(wǎng)絡(luò)的發(fā)展中取得先機(jī),采用了各種各樣的手段。但是,其捆綁的msn,無論從功能上,還是技術(shù)上來說,都不算是非常先進(jìn)的。當(dāng)然,ie,同樣也不是很受人青睞,這讓人想起了,當(dāng)年的網(wǎng)景公司,網(wǎng)景只是生不逢時(shí)。MS不擇手段的想打跨網(wǎng)景,可見其對(duì)網(wǎng)絡(luò)的重視。如今,Sun公司在網(wǎng)絡(luò)應(yīng)用上捷足先登,憑借著Java,Sun在網(wǎng)絡(luò)的應(yīng)用上領(lǐng)先于MS。微軟,想用同樣的辦法搞跨對(duì)手,因此它拿出了Visualc#,來對(duì)抗Java。這些都是在應(yīng)用層面的開發(fā)工具。應(yīng)用層上的產(chǎn)品就更顯種類繁多。ICQ幾乎是國際上通用的即時(shí)通信工具,由于在我國它的應(yīng)用不是很廣,所以,其原理也很少被介紹。msn,是MS的產(chǎn)品,同樣在國內(nèi)沒什么市場,所以,對(duì)其原理,也很少被討論過。至于ie,是在Visualc++下開發(fā)的產(chǎn)品,雖然有嚴(yán)重的安全隱患,不過,至少能在某種程度上代表當(dāng)今國際研究的水平。此外,國際上最近出先了新的瀏覽器Firefox,其性能據(jù)說是遠(yuǎn)高于ie,也許在網(wǎng)絡(luò)的天下,Ms又有了更強(qiáng)勁的對(duì)手。
1.2.2
國內(nèi)研究現(xiàn)狀國內(nèi)在應(yīng)用層上的網(wǎng)絡(luò)應(yīng)用軟件目前發(fā)展異常的火爆,因?yàn)槲覈兄W(wǎng)絡(luò)應(yīng)用的最大的市場,現(xiàn)在國內(nèi)網(wǎng)絡(luò)的基礎(chǔ)性建設(shè)發(fā)展迅速,應(yīng)用軟件也層出不窮,其中,在游戲的領(lǐng)域中,網(wǎng)絡(luò)通信的工作做的不錯(cuò),如聯(lián)眾游戲平臺(tái),還有其他的一些平臺(tái),這些平臺(tái)基本上都是基于VC++的,用的都是Socket通信,但是為了效率,這些平臺(tái)沒有用MFC提供的CSocket類,而是直接用Socket進(jìn)行通信。所以效率上不錯(cuò)。此外,tencent的即時(shí)通信,也是做的很好的,從某中程度上來說,代表了國內(nèi)最高的水平。1.3
本課題研究的意義本課題目標(biāo)是實(shí)現(xiàn)局域網(wǎng)用戶之間的即時(shí)交流和文件傳輸,通過基礎(chǔ)的網(wǎng)絡(luò)SOKET編程,為局域網(wǎng)內(nèi)部的即時(shí)通信提供一個(gè)簡單而較安全的解決方案。1.4
本課題的研究方法本系統(tǒng)采用C/S(Client/Server)結(jié)構(gòu)進(jìn)行設(shè)計(jì),使用SQLServer2000構(gòu)建數(shù)據(jù)庫,并在.NET環(huán)境下使用VisualC#.net語言和SOCKET套接字開發(fā)一個(gè)基于TCP協(xié)議的簡單即時(shí)通信軟件,實(shí)現(xiàn)簡單的即時(shí)聊天,文件傳輸?shù)裙δ堋?
相關(guān)技術(shù)介紹2.1
.NET開發(fā)平臺(tái)及C#.NET開發(fā)語言.NET框架是Microsoft公司推出的一種全新的開發(fā)平臺(tái),提供了統(tǒng)一的、面向?qū)ο蟛⑶铱梢詳U(kuò)展的編程類庫和完善的集成開發(fā)環(huán)境,大大簡化了應(yīng)用程序的開發(fā)過程,并且具有良好的移植性和安全性。微軟為了推行.NET戰(zhàn)略,特別為.NET平臺(tái)設(shè)計(jì)了一種語言——C#。C#是由C和C++派生而來的一種“簡單、流行、面向?qū)ο?、類型安全”的程序設(shè)計(jì)語言,其綜合了Visualbasic的高效率和C++的強(qiáng)大功能,然而更多的人感覺C#更類似JAVA。事實(shí)上C#融合了大量的JAVA思想,C#是.NET的關(guān)鍵性語言,它是整個(gè).NET平臺(tái)的基礎(chǔ)。與C#相比,.NET所支持的其它語言顯然是配角,包括VC++.NET在內(nèi)。但是微軟并沒有打算放棄VC++.NET,相反,微軟對(duì)VC++.NET有著另一番獨(dú)特的打算,VC++.NET的定位與C#不完全重合,VC++.NET應(yīng)用范圍仍強(qiáng)于C#,這一點(diǎn)無論對(duì)微軟公司還是軟件業(yè)應(yīng)用現(xiàn)狀都非常重要??梢?+.NET在NET框架中已經(jīng)退化成了底層的語言了,就像C++之前的標(biāo)準(zhǔn)C語言一樣,以后將只有開發(fā)底層或桌面程序的程序員使用它。它雖然仍舊強(qiáng)大,但是已經(jīng)不是主流,而主流就是C#語言。2.2
TCP協(xié)議2.2.1
TCP/IP網(wǎng)絡(luò)協(xié)議協(xié)議是對(duì)等的網(wǎng)絡(luò)實(shí)體之間通信的規(guī)則,可以簡單地理解為網(wǎng)絡(luò)上各計(jì)算機(jī)彼此交流的一種“語言”。網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)的基本原則是層次化,層和協(xié)議的集合被稱為網(wǎng)絡(luò)體系結(jié)構(gòu)。相鄰層之間的接口定義了下層向上層提供的基本操作和服務(wù),下層向上層提供的服務(wù)分兩種形式:面向連接的服務(wù)和無連接的服務(wù)。計(jì)算機(jī)網(wǎng)絡(luò)中已經(jīng)形成的網(wǎng)絡(luò)體系結(jié)構(gòu)主要有兩個(gè):OSI參考模型和TCP/IP參考模型。TCP/IP參考模型是因特網(wǎng)(Internet)的基礎(chǔ)。和OSI的7層協(xié)議相比,TCP/IP協(xié)議只有4個(gè)層次。通常說的TCP/IP是一組協(xié)議的總稱,TCP/IP實(shí)際上是一個(gè)協(xié)議族,包括100多個(gè)相互關(guān)聯(lián)的協(xié)議,其中IP(InternetProtocol,網(wǎng)際協(xié)議)是網(wǎng)絡(luò)層最主要的協(xié)議;TCP(TransmissionControlProtocol,傳輸控制協(xié)議)和UDP(UserDatagramProtocol,用戶數(shù)據(jù)報(bào)協(xié)議是傳輸層中最主要的協(xié)議),一般認(rèn)為IP、TCP、UDP是最根本的三種協(xié)議,是其他協(xié)議的基礎(chǔ)。
2.2.2
TCP——傳輸控制協(xié)議面向連接的通信可以使用可靠通信,在這時(shí)候,第四層協(xié)議發(fā)送數(shù)據(jù)接收方的確認(rèn),如果未收到數(shù)據(jù)或者數(shù)據(jù)被損壞,則請(qǐng)求重新傳輸。TCP協(xié)議就使用這種可靠通信。使用TCP協(xié)議的應(yīng)用層協(xié)議包括HTTP、FTP、SMTP和Telnet等。TCP要求在發(fā)送數(shù)據(jù)之前必須打開連接。服務(wù)器應(yīng)用程序必須執(zhí)行一個(gè)稱作被動(dòng)打開(passiveopen)的操作,以利用一個(gè)已知的端口號(hào)創(chuàng)建一個(gè)鏈接,這是,服務(wù)器并不是對(duì)網(wǎng)絡(luò)進(jìn)行呼叫,而是偵聽并等待引入的請(qǐng)求??蛻魬?yīng)用程序必須執(zhí)行一個(gè)主動(dòng)打開(activeopen),為此,它向服務(wù)器應(yīng)用程序發(fā)送一個(gè)同步序列號(hào)(SYN)以標(biāo)識(shí)連接??蛻魬?yīng)用程序可以將動(dòng)態(tài)端口號(hào)作為本地端口使用。服務(wù)器必須向客戶發(fā)送一個(gè)確認(rèn)(ACK)以及服務(wù)器的序列號(hào)(SYN)。隨后,客戶回復(fù)一個(gè)ACK,這樣就建立了鏈接?,F(xiàn)在可以發(fā)送和接收消息了。接收消息后,總是返回ACK消息。如果在收到ACK之前發(fā)送方已經(jīng)超時(shí),則消息將被放到重發(fā)隊(duì)列中以再次發(fā)送。由于它的握手機(jī)制,所以TCP協(xié)議比較復(fù)雜并且費(fèi)時(shí),但此協(xié)議在處理數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)包的傳送有保障,從而使得在應(yīng)用程序協(xié)議中不需要再包括該功能。2.3
套接字套接字這個(gè)術(shù)語并沒有定義某個(gè)協(xié)議:它具有兩層含義,但兩者都與一個(gè)協(xié)議相關(guān)。第一個(gè)含義是套接字編程API,它最初由伯克利大學(xué)為BSDUNIX而創(chuàng)建。BSD套接字在經(jīng)過修改后被用作Windows環(huán)境的編程接口(并且被命名為WinSock)。WinSockAPI被包裝在System.Net.sockets命名空間的.NET類中。WindowsSockets是一個(gè)獨(dú)立于協(xié)議的編程接口,用于編寫網(wǎng)絡(luò)應(yīng)用程序。套接字的第二層含義表示一個(gè)用于在進(jìn)程間進(jìn)行通信的終端。在TCP/IP中,每個(gè)終端都與一個(gè)IP地址和一個(gè)端口號(hào)綁定。我們必須對(duì)流式套接字和數(shù)據(jù)報(bào)套接字這兩種類型進(jìn)行區(qū)分。流失套接字用TCP/IP協(xié)議來使用面向連接的通信;另一方面,數(shù)據(jù)報(bào)套接字用UDP/IP來使用無連接通信。目
錄論文總頁數(shù):28頁1
引言
11.1
課題背景
11.2
國內(nèi)外研究現(xiàn)狀
11.2.1
國外研究現(xiàn)狀
11.2.2
國內(nèi)研究現(xiàn)狀
21.3
本課題研究的意義
21.4
本課題的研究方法
22
相關(guān)技術(shù)介紹
22.1
.NET開發(fā)平臺(tái)及C#.NET開發(fā)語言
22.2
TCP協(xié)議
32.2.1
TCP/IP網(wǎng)絡(luò)協(xié)議
32.2.2
TCP——傳輸控制協(xié)議
32.3
套接字
42.4
流
42.4.1
流的基本概念
42.4.2
.NET中的流
42.5
同步、異步、阻塞和非阻塞
52.6
C/S模型
52.7
即時(shí)通信協(xié)議
63
系統(tǒng)總體設(shè)計(jì)
73.1
需求分析
73.2
系統(tǒng)基本架構(gòu)
73.3
功能模塊設(shè)計(jì)
73.4
邏輯圖
93.5
數(shù)據(jù)庫設(shè)計(jì)
103.5.1
實(shí)體關(guān)系圖
103.5.2
詳細(xì)列表
104
系統(tǒng)實(shí)現(xiàn)
114.1
使用XML定義的即時(shí)通信協(xié)議
114.1.1
信息結(jié)構(gòu)MESSAGE.CS&UMESSAGE.CS
114.1.2
數(shù)據(jù)結(jié)構(gòu)FriendStruct
124.2
數(shù)據(jù)庫連接類
144.3
服務(wù)器端
154.3.1
同步套接字網(wǎng)絡(luò)監(jiān)聽
154.3.2
多線程
194.3.3
計(jì)時(shí)器
194.4
客戶端
204.4.1
同步套接字客戶端
204.4.2
采用異步套接字的文件傳輸
23結(jié)
論
25參考文獻(xiàn)
26致
謝
27聲
明
28
參考文獻(xiàn)[1]Tobin.Titus,FabioClaudioFerracchiati.C#線程參考手冊(cè)[M].王敏譯.北京:清華大學(xué)出版社,2003。[2]黃承安,謝東文,許聰.C#網(wǎng)絡(luò)應(yīng)用案例導(dǎo)航[M].北京:中國鐵道出版社,2003。[3]AndrewKrowczyk,vinodKumar..NET網(wǎng)絡(luò)高級(jí)編程[M].北京:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班藝術(shù)活動(dòng)豐富孩子的創(chuàng)意計(jì)劃
- 倉庫物流環(huán)節(jié)的協(xié)同管理計(jì)劃
- 中學(xué)教育改革計(jì)劃
- 醫(yī)保相關(guān)知識(shí)培訓(xùn)課件
- 貴州豐聯(lián)礦業(yè)有限公司普安縣久豐煤礦變更礦產(chǎn)資源綠色開發(fā)利用方案(三合一)評(píng)審意見
- 《且末縣邦泰礦業(yè)投資有限公司新疆且末縣屈庫勒克東礦區(qū)金(銻)礦礦產(chǎn)資源開發(fā)利用與生態(tài)保護(hù)修復(fù)方案》專家意見的認(rèn)定
- 《8 節(jié)日美食》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年五年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)皖教版
- 如何改善個(gè)人責(zé)任意識(shí)提升組織效率
- 第三單元第十三課《使用電子郵件和QQ》-教學(xué)設(shè)計(jì) 2023-2024學(xué)年粵教版(2019)初中信息技術(shù)七年級(jí)上冊(cè)
- 2025年粘土主題組合創(chuàng)意標(biāo)準(zhǔn)教案
- 酒店能耗分析報(bào)告
- 桃花紅杏花紅混聲合唱簡譜
- DL-T995-2016繼電保護(hù)和電網(wǎng)安全自動(dòng)裝置檢驗(yàn)規(guī)程
- ICP備案網(wǎng)站建設(shè)方案書
- 《柔性棚洞防護(hù)結(jié)構(gòu)技術(shù)規(guī)程》
- 初中英語翻譯專題訓(xùn)練100題含答案
- 醫(yī)療新技術(shù)新項(xiàng)目匯報(bào)
- 我國科技政策向創(chuàng)新政策演變的過程、趨勢(shì)與建議基于我國289項(xiàng)創(chuàng)新政策的實(shí)證分析
- 人教版新起點(diǎn)(一年級(jí)起)二年級(jí)英語下冊(cè)教案全冊(cè)
- 學(xué)校教職工代表大會(huì)代表選舉辦法
- 中國慢性鼻竇炎診斷和治療指南課件
評(píng)論
0/150
提交評(píng)論