[摘 要]即時通信能夠即時發送和接收互聯網消息,而TCP提供的是面向連接,可靠的數據傳輸服務。基于TCP的即時通信利用SOCKET套接字進行數據通訊,程序分為服務器端和客戶端兩部分。本文介紹了課題的設計背景、TCP協議和SOCKET的工作原理等,著重分析設計說明了基于TCP的即時通信程序的總體設計架構、各模塊設計與實現過程,對程序中用到的主要的類及數據結構進行了詳細深入的描述。并對設計中涉及到的主要函數的代碼實現及程序的調試與測試過程做了詳細的分析和介紹。通過本文的闡述,能夠讓我們對基于TCP協議的即時通信程序的工作原理和設計與實現過程有更充分的認知。
[關鍵詞]即時通信 TCP協議
伴隨著互聯網的快速發展,人類社會步入了信息化、網絡化時代。在信息社會,互聯網為人們提供了巨大的便利,通過互聯網人們可以方便的進行資源共享和隨時、隨地、隨心的進行相互通信。即時通訊是互聯網上最快、最便捷的信息傳遞方式,通過即時通訊人們可以打破地界的限制,隨意溝通交流,而且最重要的是大量節約了成本。
21世紀的今天,人們的生活已經發生了翻天覆地的變化,互聯網這個曾經的新興事物也以它的方便快捷走進了千家萬戶。隨著網絡持續快速增長,網絡規模迅速擴大,網絡技術不斷推陳出新,各種網絡功能也日趨豐富。電子政務、遠程教育、遠程醫療、電子商務、移動信息、在線數字內容等網上各類功能日新月異,信息交流更加便捷高效。可以說,人們的工作、學習、生活都已經離不開互聯網了。而互聯網在促進經濟發展、推動社會進步和提高人民生活質量方面也發揮著越來越重要的作用。互聯網是人類社會有史以來第一個世界性的圖書館和第一個全球性論壇。任何人,無論來自世界的任何地方,在任何時候,他(她)都可以參加,互聯網永遠不會關閉。而且,無論你是誰,你永遠是受歡迎的。你不會由于不同的膚色、不同的穿戴、不同的宗教信仰而被排擠在外。在當今的世界里,唯一沒有國界、沒有歧視、沒有政治的生活屬于互聯網。通過網絡信息的傳播,全世界任何人,不分國籍、種族、性別、年齡、貧富,互相傳送經驗與知識,發表意見和見解。
即時通信(IM)是指能夠即時發送和接收互聯網消息等的業務。即時通信作為中國互聯網市場已經成為最普及的應用之一,即時通信的未來技術發展和應用創新將受到眾多新技術趨勢的影響,呈現越來越動態的變化,即時通信和社會化網絡、統一通信、在線協同三大技術熱點的關系將越來越密切,已經構成重要的融合發展的趨勢。
(1)社會化網絡——社會化網絡快速發展和即時通信的普及相互影響,即時通信在中國成為社會化網絡的重要入口。例如,騰訊,在基于即時通信的基礎上,構建了活躍用戶規模過億的大型社區。
(2)統一通信——即時通信越來越具備成為統一通信關鍵元素的特質。統一通信建立統一的客戶界面和基礎平臺的理念在企業廣受歡迎,成為電信市場發展的大勢所趨。如果希望部署用戶體驗良好的統一通信平臺,就必須重視提供靈活的即時通信功能。
(3)在線協同——在線協同也將吸收更多的即時通信發展的理念,呈現動態的變化。今天的在線協同更加重視來自于每一個用戶的參與程度,如何讓員工和客戶通過合適的在線協同工具表達自己的意見和想法越來越重要。
目前比較流行的即時通信軟件多數先天 “不足”,比如QQ、飛鴿等都是基于UDP協議的即時通信軟件,而UDP屬于“面向無連接,不可靠傳輸”,由于UDP在傳送數據過程中沒有建立連接,因此它只負責接收和傳送由上層協議傳遞的信息,本身不做任何的檢查、修改與應答,也因為它的不可靠性,使得它不能保證數據報能安全無誤地到達目的地。這樣用戶在使用這些即時通信軟件時就容易出現不知情的突然中斷以及信息丟失等現象,給用戶帶來不必要的麻煩和困擾。本課題的設計實現就是基于這種情況,針對目前基于UDP的即時通信軟件的先天不可靠性,設計了一種基于TCP協議的即時通信軟件,由于TCP協議在網絡通信傳輸機制中屬于“面向連接,可靠傳輸”的類型,面向連接的傳輸意味著在進行通信以前,需要在兩個系統之間建立邏輯連接,在每個數據傳輸的過程中都需要進行應答以保證數據包的完整。
基于局域網的即時通信工具,如今一般采用UDP或者 TCP協議體系來實現,開發技術已經比較成熟,通過這些開發的產品工具統統都實現了廣域網上的即時通信這些軟件,在使用方面各有特色,在實現方面也各有所長。即時通信的功能日益豐富,逐漸集成了電子郵件、博客、音樂、電視、游戲和搜索等多種功能。即時通信不再是一個單純的聊天工具,它已經發展成集交流、資訊、娛樂、搜索、電子商務、辦公協作和企業客戶服務等為一體的綜合化信息平臺。
參考文獻:
[1] Douglas E.Comer ,《用TCP/IP進行網際互聯(第四版)》 機械工業出版社,2001
[2]Ray Horak著,徐勇等譯,通信系統與網絡,電子工業出版社,2001年3月
[3]馬博. 即時通信市場:“運營商系”挑戰“互聯網系”. 中國電子報 , 2008
[4]宋國龍,淺談即時通訊軟件的開發技術 [J],山西電子技術,2003年02期
[5]王晉海,即時通信系統的研究與實現 [D],暨南大學,2004年
[6]馬丹,即時通信系統終端的設計與實現 [D],電子科技大學,2005年