資源描述:
《基于tcp協(xié)議的簡(jiǎn)單即時(shí)通信軟件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)運(yùn)用論文專(zhuān)業(yè)名稱(chēng):電氣自動(dòng)化學(xué)生姓名:宋熙學(xué)號(hào):091401010043指導(dǎo)教師:何老師基于TCP協(xié)議的簡(jiǎn)單即時(shí)通信軟件的設(shè)計(jì)與實(shí)現(xiàn)摘要即時(shí)通信(InstantMessage),由于其具有實(shí)時(shí)性、跨平臺(tái)性、成本低、效率高等優(yōu)點(diǎn)而受到廣泛的使用。設(shè)計(jì)并實(shí)現(xiàn)一個(gè)能夠處理多用戶進(jìn)行實(shí)時(shí)、安全的即時(shí)通信系統(tǒng)具有較強(qiáng)的現(xiàn)實(shí)意義。即時(shí)通信的底層通信是通過(guò)SOCKET套接字接口實(shí)現(xiàn)的。當(dāng)前的主流UNIX系統(tǒng)和微軟的WINDOWS系統(tǒng)都在內(nèi)核提供了對(duì)SOCKET字接口的支持。使用這個(gè)統(tǒng)一的接口,可以編寫(xiě)一個(gè)可移植
2、的TCP/IP通信程序。使信息能夠在INTERNET上可靠的傳輸。關(guān)鍵詞:即時(shí)通信;文件傳輸;套接字;TCP協(xié)議21引言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版本
3、,在六個(gè)月內(nèi)有85萬(wàn)用戶注冊(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í)通信更
4、跨越了因特網(wǎng)交流。1996年11月,ICQ是首個(gè)廣泛被非UNIX/Linux使用者用于因特網(wǎng)的即時(shí)通信軟件。在ICQ的介紹之后,同時(shí)在許多地方有一定數(shù)量的即時(shí)通信方式發(fā)展,且各式的即時(shí)通信程序有獨(dú)立的協(xié)議,無(wú)法彼此互通。這引導(dǎo)使用者同時(shí)執(zhí)行兩個(gè)以上的即時(shí)通信軟件,或者他們可以使用支持多協(xié)議的終端軟件,如Gaim、Trillian或Jabber。2相關(guān)技術(shù)介紹2.1.NET開(kāi)發(fā)平臺(tái)及C#.NET開(kāi)發(fā)語(yǔ)言.NET框架是Microsoft公司推出的一種全新的開(kāi)發(fā)平臺(tái),提供了統(tǒng)一的、面向?qū)ο蟛⑶铱梢詳U(kuò)展的編程類(lèi)庫(kù)和完善的集成
5、開(kāi)發(fā)環(huán)境,大大簡(jiǎn)化了應(yīng)用程序的開(kāi)發(fā)過(guò)程,并且具有良好的移植性和安全性。微軟為了推行.NET戰(zhàn)略,特別為.NET平臺(tái)設(shè)計(jì)了一種語(yǔ)言——C#。C#是由C和C++派生而來(lái)的一種“簡(jiǎn)單、流行、面向?qū)ο?、?lèi)型安全”的程序設(shè)計(jì)語(yǔ)言,其綜合了Visualbasic的高效率和C++的強(qiáng)大功能,然而更多的人感覺(jué)C#更類(lèi)似JAVA。事實(shí)上C#融合了大量的JAVA思想,C#是.NET的關(guān)鍵性語(yǔ)言,它是整個(gè).NET平臺(tái)的第18頁(yè)基礎(chǔ)。與C#相比,.NET所支持的其它語(yǔ)言顯然是配角,包括VC++.NET在內(nèi)。但是微軟并沒(méi)有打算放棄VC++.N
6、ET,相反,微軟對(duì)VC++.NET有著另一番獨(dú)特的打算,VC++.NET的定位與C#不完全重合,VC++.NET應(yīng)用范圍仍強(qiáng)于C#,這一點(diǎn)無(wú)論對(duì)微軟公司還是軟件業(yè)應(yīng)用現(xiàn)狀都非常重要。可見(jiàn)VC++.NET在NET框架中已經(jīng)退化成了底層的語(yǔ)言了,就像C++之前的標(biāo)準(zhǔn)C語(yǔ)言一樣,以后將只有開(kāi)發(fā)底層或桌面程序的程序員使用它。它雖然仍舊強(qiáng)大,但是已經(jīng)不是主流,而主流就是C#語(yǔ)言。1.1TCP協(xié)議2.2.1TCP/IP網(wǎng)絡(luò)協(xié)議協(xié)議是對(duì)等的網(wǎng)絡(luò)實(shí)體之間通信的規(guī)則,可以簡(jiǎn)單地理解為網(wǎng)絡(luò)上各計(jì)算機(jī)彼此交流的一種“語(yǔ)言”。網(wǎng)絡(luò)通信協(xié)議設(shè)
7、計(jì)的基本原則是層次化,層和協(xié)議的集合被稱(chēng)為網(wǎng)絡(luò)體系結(jié)構(gòu)。相鄰層之間的接口定義了下層向上層提供的基本操作和服務(wù),下層向上層提供的服務(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è)層次。通常說(shuō)的TCP/IP是一組協(xié)議的總稱(chēng),TCP/IP實(shí)際上是一個(gè)協(xié)議族,包括100多個(gè)相互關(guān)聯(lián)的協(xié)議,其中IP(InternetProtocol,網(wǎng)際協(xié)議)是
8、網(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.2TCP——傳輸控制協(xié)議面向連接的通信可以使用可靠通信,在這時(shí)候,第四層協(xié)議發(fā)送數(shù)