freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

linux下基于c語言開發(fā)的即時通信軟件畢業(yè)設計(已修改)

2025-07-05 19:38 本頁面
 

【正文】 Linux下基于C++語言開發(fā)的即時通信軟件畢業(yè)設計目錄摘 要 IAbstract II1 前言 1 課題研究背景和現(xiàn)狀 1 研究背景 1 研究現(xiàn)狀和發(fā)展趨勢 1 本課題研究的目的和意義 2 開發(fā)工具及工具簡介 2 Linux操作系統(tǒng) 2 數(shù)據(jù)庫SQL Server 2000 3 開發(fā)語言C++語言 3 Qt編程軟件 4 ICE中間件 42 即時通信軟件系統(tǒng)總體設計 5 即使通信系統(tǒng)總體結構及總體需求 5 總體性能需求分析 6 服務器端性能需求 6 客戶端端性能需求 6 錯誤處理需求 63 程序設計方案 7 方案比較 7 采用TCP方式連接 7 采用UDP方式連接 8 采用ICE中間件 8 方案比較 10 總體設計方案 10 服務器端功能模塊劃分 10 客戶端端功能模塊劃分 11 消息標識定義 12 服務器接口函數(shù) 134 即時通訊系統(tǒng)軟件詳細設計 15 服務器端設計思想 15 客戶端設計思想 17 服務器端詳細設計 20 服務器端主體 20 服務器端線程實現(xiàn) 20 22 客戶端圖形界面詳細設計 24 連接窗體 25 登陸窗體 28 注冊窗體 30 用戶窗體 32 添加好友窗體 35 對話窗體 37 數(shù)據(jù)庫和文件的操作 415 結論 46 教訓及經驗總結 46 總結 46致 謝 48參考文獻 49外文原文 50中文翻譯 55591 前言 課題研究背景和現(xiàn)狀 研究背景21世紀以計算機為代表的信息產業(yè),標志著人類社會進入了信息時代,計算機網絡的研究和發(fā)展。特別是Internet在全球的推廣和應用,對全世界科學、經濟和社會產生了重大影響。而網絡通訊的出現(xiàn)又把全世界各個地方的人的距離拉得越來越近!隨著互聯(lián)網的普及,具有交互功能的應用軟件日益受到親睞,尤其是即時通訊軟件ICS大受歡迎。163和263網站使用ICS的在線人數(shù)常達幾萬人,上百萬人同時出現(xiàn)在騰訊的上。優(yōu)秀的ICS確 實為天南地北的人們的信息勾通提供了便利,對提高網站知名度起到了至關重要的作用, 國外有的公司甚至把ICS作為支柱軟件推出。 研究現(xiàn)狀和發(fā)展趨勢自1990s,四位以色列人推出的ICQ后,IM首次出現(xiàn),憑借實時在線的交互特性迅速風靡全球。如今,IM軟件正逐漸成為一個集合了文字、視頻、音頻業(yè)務以及多種增值業(yè)務的多媒體網絡通信軟件,憑借其所具有的廉價性和方便性,以及功能不斷完善,IM已經和WWW、Email等一起成為網民們最喜愛的網絡服務之一。尤其在國內,騰訊普及率遠高于Email,在部分中國網民眼中上網基本等價于使用等。2010年3月5日19時52分58秒,騰訊同時在線用戶數(shù)突破了1億。截止到2009年3月18日。近年來公共互聯(lián)網上的即時通訊發(fā)展迅猛,并向著未來通信和協(xié)作的主要模式演化。這種演化主要表現(xiàn)為:從文本向話音、視頻和多媒體演化;從固定網絡向無線移動演化;從個人通信向企業(yè)即時通信和協(xié)作演化;在體系結構方面,從集中服務器向對等連接P2P演化;從專門系統(tǒng)向開放系統(tǒng)演化,推動實現(xiàn)不同系統(tǒng)的互通??傮w看,是從即時通訊向新一代統(tǒng)一消息演化。 本課題研究的目的和意義即時通訊(Instant messaging,簡稱IM)是一個終端服務,允許兩人或多人使用網絡即時地傳遞文字信息、文件、語音與視頻交流。它是一種使人們能在網上識別在線用戶并與他們實時交換消息的技術。即時通訊被認為比電子郵件更具有自發(fā)性,甚至能在進行實時文本對話的同時瀏覽網上信息。 利用“即時通訊”工具,用戶間可以實現(xiàn)異地文字、語言、視頻的實時互通;同時,借助即時通訊工具,還可以幫助企業(yè)提高業(yè)務協(xié)同性及反饋的敏感度和快捷度。作為使用頻率最高的網絡軟件,即時通訊已被認為是現(xiàn)代交流方式的新象征。 開發(fā)工具及工具簡介操作系統(tǒng):Linux操作系統(tǒng)數(shù)據(jù)庫:SQL Server 2000編程語言:C++語言開發(fā)工具:QT編程軟件使用技術:ICE中間件 Linux操作系統(tǒng)最早的Fedora Linux社區(qū)的目標是Red Hat Linux制作并發(fā)布第三方的軟件包,然而當Red Hat Linux停止發(fā)行后,F(xiàn)edora社區(qū)便集成到Red Hat贊助的Fedora Project,目標是開發(fā)出由社區(qū)支持的操作系統(tǒng)Red Hat,Enterprise Linux則取代Red Hat Linux成為官方支持的系統(tǒng)版本。 Fedora Core是眾多Linux發(fā)行套件之一。它是一套從Red Hat Linux 發(fā)展出來的免費Linux 系統(tǒng)?,F(xiàn)時Fedora最新的版本是Fedora16,F(xiàn)edora是Linux發(fā)行版中更新最快的之一,通常每6個月發(fā)布一個正式的新版本。 Fedora和Red Hat這兩個Linux的發(fā)行版聯(lián)系很密切。Red ,不再發(fā)布桌面版的,而是把這個項目與開源社區(qū)合作,于是就有了Fedora 這個 Linux 發(fā)行版。Fedora 可以說是Red hat桌面版本的延續(xù),只不過是與開源社區(qū)合作。 數(shù)據(jù)庫SQL Server 2000數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點:盡可能不重復,以最優(yōu)方式為某個特定組織的多種應用服務,其數(shù)據(jù)結構獨立于使用它的應用程序,對數(shù)據(jù)的增、刪、改和檢索由統(tǒng)一軟件進行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。SQL Server 2000 是Microsoft公司推出的SQL Server數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了SQL Server 版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98的膝上型電腦到運行Microsoft Windows 2000的大型多處理器的服務器等多種平臺使用。 開發(fā)語言C++語言C++程序設計語言是由來自ATamp。T Bell Laboratories的Bjarne Stroustrup(即本文作者)設計和實現(xiàn)的,它兼具Simula語言在組織與設計方面的特性以及適用于系統(tǒng)程序設計的C語言設施。C++最初的版本被稱作“帶類的(C with classes)”[Stroustrup,1980],在1980年被第一次投入使用;當時它只支持系統(tǒng)程序設計(167。3)和數(shù)據(jù)抽象技術(167。)。支持面向對象程序設計的語言設施在1983年被加入C++;之后,面向對象設計方法和面向對象程序設計技術就逐漸進入了C++領域。在1985年,C++第一次投入商業(yè)市場[Stroustrup,1986][Stroustrup,1986b]。在1987至1989年間,支持范型程序設計的語言設施也被加進了C++[Ellis,1990][Stroustrup,1991]。 隨著若干獨立開發(fā)的C++實現(xiàn)產品的出現(xiàn)和廣泛應用,正式的C++標準化工作在1990年啟動。標準化工作由ANSI(American National Standard Institute)以及后來加入的ISO(International Standards Organization)負責。1998年正式發(fā)布了C++語言的國際標準[C++,1998]。在標準化工作進展期間,標準委員會充當了一個重要的角色,其發(fā)布的C++標準之草案在正式標準發(fā)布之前,一直被作為過渡標準而存在。 Qt編程軟件Qt是一個1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應用程序開發(fā)框架。它既可以開發(fā)GUI程式,也可用于開發(fā)非GUI程式,比如控制臺工具和服務器。Qt是面向對象語言,易于擴展,并且允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。在發(fā)布Qt 的同時,作為 Qt 開發(fā)跨平臺 IDE 的 Qt Creator 也發(fā)布了更新版本。Qt Creator 和 Qt Qt SDK,包含了開發(fā)跨平臺應用程序所需的全部功能。 Qt Creator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。Qt Creator可帶來兩大關鍵益處:提供首個專為支持跨平臺開發(fā)而設計的集成開發(fā)環(huán)境 (IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。 Qt Creator包含了一套用于創(chuàng)建和測試基于Qt應用程序的高效工具,包括: 一個高級的C++代碼編輯器 上下文感知幫助系統(tǒng) 可視化調試器 源代碼管理 項目和構建管理工具 Qt ,并且接受代碼貢獻。 ICE中間件ZeroC,Inc開發(fā)的Internet Communications Engine ,簡稱Ice1。其主要設計目標是: ? 提供適用于異種環(huán)境的面向對象中間件平臺。 ? 提供一組完整的特性,支持廣泛的領域中的實際的分布式應用的開發(fā)。 ? 避免不必要的復雜性,使平臺更易于學習和使用。 ? 提供一種在網絡帶寬、內存使用和 CPU 開銷方面都很高效的實現(xiàn)。 ? 提供一種具有內建安全性的實現(xiàn),使它適用于不安全的公共網絡。 更簡單地說,Ice 的設計目標可陳述為: “讓我們構建與CORBA 一樣強大的中間件平臺,而又不去犯 CORBA 所犯下的任何錯誤”。Ice 是一種面向對象的中間件平臺。從根本上說,這意味著 Ice 為構建面向對象的客戶-服務器應用提供了工具、API 和庫支持。 Ice 應用適合在異種環(huán)境中使用:客戶和服務器可以用不同的編程語言編寫,可以運行在不同的操作系統(tǒng)和機器架構上,并且可以使用多種網絡技術進行通信。無論部署環(huán)境如何,這些應用的源碼都是可移植的2 即時通信軟件系統(tǒng)總體設計 即使通信系統(tǒng)總體結構及總體需求本系統(tǒng)是一個即時通訊程序,目前實現(xiàn)是在局域網下。本系統(tǒng)分為服務器和客戶端兩個應用程序,服務器負責管理客戶端,客戶端之間自由通訊。服務器端和客戶端之間使用TCP協(xié)議進行通信。模塊的工作方式如下:客戶端客戶端服務器 圖21 服務器和客戶端工作方式簡圖為了開發(fā)出符合要求的網絡聊天程序,首先必須知道使用者的需求。對需求的深入理解是開發(fā)工作獲得成功的前提條件,它對目標項目提出完整、準確、清晰、具體的要求。軟件的功能需求:登錄功能。申請新用戶的功能??蛻艨梢酝ㄟ^服務器轉發(fā),實現(xiàn)一對一的聊天。添加好友。刪除好友。服務器端可以保存用戶的信息,同時將信息保存在文件和數(shù)據(jù)庫中??蛻舳顺绦蚩梢燥@示好友列表。應該具有易用、穩(wěn)定的圖形界面。系統(tǒng)實現(xiàn)保存聊天記錄的功能。發(fā)送系統(tǒng)消息。1服務器端保存錯誤日志。1從數(shù)據(jù)庫中讀取保存用戶信息。 總體性能需求分析 服務器端性能需求服務器需要同時連接很多個用戶,并能提供給這些連接用戶所需要的任務處理請求,這就要求服務器能同時處理多個客戶端連接。服務器模型一般分為循環(huán)服務器和并發(fā)服務器,循環(huán)服務器一次只能處理一個連接,也就是說同一時間只能由一個用戶連接到服務器進行消息處理,這種情況是不被允許的。因此我們將采用多線程方式的并發(fā)服務器來設計服務器端,這樣將能從很大程度上提高服務器的運行效率。 客戶端端性能需求客戶端只需要連接到服務器便可以進行任務的處理工作,因此客戶端的主要性能要求為圖形界面運行的穩(wěn)定性和對出錯信息的及時反映。當一個窗體出現(xiàn)問題時能夠及時的處理,讓主程序不受影響。 錯誤處理需求所有的應用程序在運行過程中都會出現(xiàn)出錯的情況,這種錯誤可能來自于程序本身的BUG也可能是用戶操作的失誤所造成的。當有錯誤發(fā)生時,我們應該有一個很好的機制來保障錯誤能夠及時地被排除。因此,當應用程序出現(xiàn)了錯誤的時候我們就需要程序能提供給我們出錯的信息,這樣用戶就能夠很快的找出具體的出錯原因,以便尋找合理的途徑去解決它。 3 程序設計方案 方案比較 采用TCP方式連接TCP方式連接的一個顯著特點就是需要有服務器,這種類型的程序通常被稱為客戶機/服務器模式??蛻魴C/服務器模型也是一種網絡模型,它并不是定義了網絡的層次結構,而是描述了一種網絡程序運行的方式??蛻艏?服務器模型將網絡應用程序分為客戶和服務器兩部分。客戶方對服務器方發(fā)送信息請求,服務器方對其做出相應回答,提供服務。在TCP/IP網絡應用中,多數(shù)網絡應用程序是使用客戶/服務器模型設計的。服務程序通常在一個眾所周知的地址監(jiān)聽對服務的請求,也就是說,服務進程一直處于休眠狀態(tài),直到一個客戶程序提出了請求信息。此時,服務程序被驚醒并且為客戶提供服務,對客戶的請求做出適當?shù)姆磻km然基于連接的服務是設計客戶/服務器應用程序的標準,但是通過運用ICE中間件的原理,可以將客戶端和服務端進行解耦合,使二者成為獨立的一部分,服務器只需提供一個servant,而客戶端只需獲取servant的代理,二者就可以進行通信,甚至服務器端和客戶端可以使用不同的語言來編寫。當建立服務器程序時,應該將服務器程序設計成等候客戶的請求。TCP傳輸層通過協(xié)議端口和應用程序通信,也就是說,為了接收客戶請求,服務器程序必須對傳輸層的一個特定協(xié)議端口進行偵聽。同時,客戶與服務器這兩個術語不是對應用的特定組成部分的嚴格指稱,而是表示在某個請求從發(fā)生到結束期間,應用的某些部分所承擔的角色: ? 客戶是主動的實體。它們向服務器發(fā)出服務請求。 ? 服務器是被動的實體。它們提供服務,響應客戶請求。 在從不發(fā)出請求、而只是響應請求的意義上,許多服務器常常不是 “純粹的”服務器:它們常常充當某些客戶的服務器,但為了完成它們的客戶的請求,
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1