畢業(yè)論文--linux下基于c++開發(fā)的即時通訊軟件_第1頁
已閱讀1頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p>  題目:Linux下基于C++開發(fā)的即時通訊軟件</p><p>  院 系: 計算機科學(xué)與工程 </p><p><b>  學(xué)科專業(yè):</b></p><p>  學(xué) 生: </p><p> 

2、 學(xué) 號: 0 </p><p>  指導(dǎo)教師: </p><p><b>  2013年 6月</b></p><p>  畢業(yè)設(shè)計(論文)任務(wù)書</p><p>  1.畢業(yè)設(shè)計(論文)題目: Linux下基于C++開發(fā)的即時通訊軟件

3、 </p><p>  2.題目背景和意義: 21世紀(jì)以計算機為代表的信息產(chǎn)業(yè),標(biāo)志著人類社會進入了信息時代,計算機網(wǎng)絡(luò)的研究和發(fā)展。特別是Internet在全球的推廣和應(yīng)用,對全世界科學(xué)、經(jīng)濟和社會產(chǎn)生了重大影響。而網(wǎng)絡(luò)通訊的出現(xiàn)又把全世界各個地方的人的距離拉得越來越近!隨著互聯(lián)網(wǎng)的普及,具有交互功能的應(yīng)用軟件日益受到親睞,尤其是即時通訊軟件

4、ICS大受歡迎。163和263網(wǎng)站使用ICS的在線人數(shù)常達幾萬人,上百萬人同時出現(xiàn)在騰訊QQ上。優(yōu)秀的ICS確實為天南地北的人們的信息勾通提供了便利,對提高網(wǎng)站知名度起到了至關(guān)重要的作用, 國外有的公司甚至把ICS作為支柱軟件推出。</p><p>  即時通訊(Instant messaging,簡稱IM)是一個終端服務(wù),允許兩人或多人使用網(wǎng)絡(luò)即時地傳遞文字信息、文件、語音與視頻交流。它是一種使人們能在網(wǎng)上識別

5、在線用戶并與他們實時交換消息的技術(shù)。即時通訊被認為比電子郵件更具有自發(fā)性,甚至能在進行實時文本對話的同時瀏覽網(wǎng)上信息。利用“即時通訊”工具,用戶間可以實現(xiàn)異地文字、語言、視頻的實時互通;同時,借助即時通訊工具,還可以幫助企業(yè)提高業(yè)務(wù)協(xié)同性及反饋的敏感度和快捷度。作為使用頻率最高的網(wǎng)絡(luò)軟件,即時通訊已被認為是現(xiàn)代交流方式的新象征。</p><p>  本畢業(yè)設(shè)計就是模擬QQ聊天軟件,開發(fā)一個包括文字聊天、保存用戶信

6、息等功能的即時通信軟件。采用C/S架構(gòu),基于Linux平臺開發(fā),采用C++編程語言。由服務(wù)器端和客戶端程序組成。采用ICE中間件,解除服務(wù)器和客戶端的耦合。并使用QT進行圖形界面的設(shè)計。主要實現(xiàn)的是聊天軟件的部分功能,即文字聊天、圖片文件傳送、保存用戶消息等功能。使用Linux開發(fā)的原因是Linux 操作系統(tǒng)作為一個開源的操作系統(tǒng)被越來越多的人所應(yīng)用,它的好處在于操作系統(tǒng)源代碼的公開化!只要是基于GNU公約的軟件你都可以任意使用并修改它

7、的源代碼。在Linux下編程的最佳語言應(yīng)該是C語言,Linux上的很多應(yīng)用程序就是用C語言寫的。因為QT是用C/C++語言編寫的,所以在開發(fā)LINUX下的GUI程序時使用C/C++語言是非常方便的。預(yù)期開發(fā)的軟件非常實用,可以在多平臺運行,有很大的應(yīng)用價值。</p><p>  3.設(shè)計(論文)的主要內(nèi)容(理工科含技術(shù)指標(biāo)):要求在Linux操作系統(tǒng)環(huán)境下使用Microsoft QT編程軟件,利用ICE中間件及S

8、QLite開發(fā)一款即時通訊軟件。該軟件可以實現(xiàn)的功能:1、登錄功能。2、申請新用戶的功能。3、客戶可以通過服務(wù)器轉(zhuǎn)發(fā),實現(xiàn)一對一的聊天。4、顯示在線好友。5、服務(wù)器顯示用戶和狀態(tài)。6、務(wù)器端可以保存用戶的信息,同時將信息保存在文件和數(shù)據(jù)庫中。7、客戶端程序可以顯示好友列表。8、應(yīng)該具有易用、穩(wěn)定的圖形界面。9、系統(tǒng)實現(xiàn)保存聊天記錄的功能。10、發(fā)送系統(tǒng)消息。11、服務(wù)器端保存錯誤日志。12、從數(shù)據(jù)庫中讀取保存用戶信息。13、發(fā)送文字消息

9、、文件、圖片。</p><p>  4.設(shè)計的基本要求及進度安排(含起始時間、設(shè)計地點):1、基本要求:熟悉Linux系統(tǒng)環(huán)境,掌握C++、數(shù)據(jù)庫、網(wǎng)絡(luò)編程、ICE、QT相關(guān)知識,能夠熟悉掌握Linux下環(huán)境下的編程平臺,了解UC的相關(guān)庫函數(shù)。2.畢業(yè)設(shè)計時間共18周,第 1 周:研究此項目所要解決的問題,確定軟件功能需求。第 2-3周:進行整體方案的初步設(shè)計,整理初步設(shè)計方案。第4-8 周:著手編輯本系統(tǒng)運行所

10、需要的各個模塊,并測試。第9-13周:完成計劃中系統(tǒng)的全部功能,做測試和修整。第14-15周:完成系統(tǒng)的整體測試。第16-18周:完成論文的撰寫,為畢業(yè)答辯做準(zhǔn)備。3.畢業(yè)設(shè)計地點:西安工業(yè)大學(xué)。 </p><p>  5.畢業(yè)設(shè)計(論文)的工作量要求 撰寫15000字論文

11、 </p><p> ?、?實驗(時數(shù))或?qū)嵙?xí)(天數(shù)): 300機時 </p><p> ?、?圖紙(幅面和張數(shù)):

12、 </p><p> ?、?其他要求:論文有老師輔導(dǎo)完成,不得抄襲,按進度完成,論文在現(xiàn)有功能可完善 </p><p>  指導(dǎo)教師簽名: 年 月 日</p><p>  學(xué)生簽

13、名: 呂磊 2012 年12 月 8 日</p><p>  系(教研室)主任審批: 年 月 日</p><p>  說明:1本表一式二份,一份由學(xué)生裝訂入附件冊,一份教師自留。</p><p>  2 帶*項可根據(jù)學(xué)科特點選填。</p><p>  Linux下基于

14、C++語言開發(fā)的即時通信軟件</p><p><b>  摘 要</b></p><p>  網(wǎng)絡(luò)通訊是目前計算機用戶進行交流最普遍的方式,各種各樣的聊天軟件也層出不窮;服務(wù)提供商也提供了越來越豐富的通訊服務(wù)功能。當(dāng)前中國的互聯(lián)網(wǎng)技術(shù)已經(jīng)進入了一個飛速發(fā)展的時期,即時通訊工具作為當(dāng)今網(wǎng)絡(luò)應(yīng)用的主流,越來越受到了人們的青睞,使人們的網(wǎng)上生活更加豐富多彩。當(dāng)今使用最為廣泛

15、的即時通信工具,微軟公司的MSN,騰訊公司的 QQ 聊天軟件等為人們的工作和生活帶來很大的便利。特別是對于騰訊來說,其公司的收益很大部分是歸功于QQ龐大的客戶群,并在此基礎(chǔ)上拓展其他的業(yè)務(wù)。</p><p>  本畢業(yè)設(shè)計就是模擬 QQ 聊天軟件,開發(fā)一個包括文字聊天、保存用戶信息等功能的即時通信軟件。</p><p>  采用 C/S 架構(gòu),基于Linux平臺開發(fā),采用C++編程語言。由

16、服務(wù)器端和客戶端程序組成。采用ICE中間件,解除服務(wù)器和客戶端的耦合。并使用QT進行圖形界面的設(shè)計。主要實現(xiàn)的是聊天軟件的部分功能,即文字聊天、保存用戶消息等功能,主要完成的任務(wù)包括服務(wù)器模塊的設(shè)計、文字聊天,保存用戶信息等功能。通過運行、測試與分析,該多功能聊天軟件運行穩(wěn)定、可靠,具有一定的實用價值。</p><p>  關(guān)鍵詞:聊天軟件 文字聊天 Linux平臺 C/S架構(gòu)</p><

17、;p>  Linux-based instant messaging softwareusing C++ language development</p><p><b>  Abstract</b></p><p>  Network communication is the computer users to communicate the m

18、ost common way, all kinds of chat software also emerge in endlessly; Service providers also provide more and more rich communication service functions. The current China's Internet technology has entered a rapid deve

19、lopment period, instant communication tools as the network application of mainstream, more and more get the favour of people, make people online life more colorful. The most widely used instant communication tools, Micro

20、</p><p>  The graduation design is simulated QQ chat software, the development of a text chat, group chat function of instant communication software.</p><p>  Using C/S structure, based on Linux

21、 platform development, the C++ programming language. And use QT for the design of the graphical interface. The realization of the main chat software is part of the function, which text chat, the function such as news gro

22、up, the main task of the module design, including the server text chat, mass news etc. Function. Through the operation, test and analysis, the multifunctional chat software operation is stable, reliable, and has a certai

23、n practical value.</p><p>  Keywords: chat software text chat Linux platform C/S </p><p><b>  目錄</b></p><p><b>  摘 要I</b></p><p>  Abst

24、ractII</p><p><b>  1 前言1</b></p><p>  1.1課題研究背景和現(xiàn)狀1</p><p>  1.1.1研究背景1</p><p>  1.1.2研究現(xiàn)狀和發(fā)展趨勢1</p><p>  1.2本課題研究的目的和意義2</p><

25、p>  1.3開發(fā)工具及工具簡介2</p><p>  1.3.1Linux操作系統(tǒng)2</p><p>  1.3.2數(shù)據(jù)庫SQLite2</p><p>  1.3.3開發(fā)語言C++語言3</p><p>  1.3.4 Qt編程軟件3</p><p>  2 即時通信軟件系統(tǒng)總體設(shè)計5</

26、p><p>  2.1即使通信系統(tǒng)總體結(jié)構(gòu)及總體需求5</p><p>  2.2總體性能需求分析6</p><p>  2.2.1服務(wù)器端性能需求6</p><p>  2.2.2客戶端端性能需求6</p><p>  2.2.3錯誤處理需求6</p><p>  3 程序設(shè)計方案7&

27、lt;/p><p><b>  3.1方案比較7</b></p><p>  3.1.1采用TCP方式連接7</p><p>  3.1.2采用UDP方式連接8</p><p><b>  3.2方案比較8</b></p><p>  3.3總體設(shè)計方案8</p&

28、gt;<p>  3.3.1服務(wù)器端功能模塊劃分8</p><p>  3.3.2客戶端端功能模塊劃分9</p><p>  3.3.3UDP協(xié)議10</p><p>  3.3.4TCP協(xié)議11</p><p>  3.3.5消息標(biāo)識定義12</p><p>  3.3.6服務(wù)器接口函數(shù)13

29、</p><p>  4 即時通訊系統(tǒng)軟件詳細設(shè)計14</p><p>  4.1服務(wù)器端設(shè)計思想14</p><p>  4.2客戶端設(shè)計思想16</p><p>  4.3服務(wù)器端詳細設(shè)計19</p><p>  4.3.1服務(wù)器端主體19</p><p>  4.3.2服務(wù)器端線

30、程實現(xiàn)19</p><p>  4.3.3服務(wù)器端函數(shù)實現(xiàn)20</p><p>  4.4客戶端圖形界面詳細設(shè)計21</p><p>  4.4.1連接窗體22</p><p>  4.4.2登陸窗體25</p><p>  4.4.3注冊窗體27</p><p>  4.4.4用戶

31、窗體29</p><p>  4.4.5對話窗體33</p><p>  4.4.6服務(wù)器的界面詳細設(shè)計38</p><p><b>  5 結(jié)論41</b></p><p>  5.1教訓(xùn)及經(jīng)驗總結(jié)41</p><p><b>  5.2總結(jié)41</b><

32、/p><p><b>  參考文獻43</b></p><p><b>  致 謝44</b></p><p>  畢業(yè)設(shè)計(論文)知識產(chǎn)權(quán)聲明45</p><p>  畢業(yè)設(shè)計(論文)獨創(chuàng)性聲明46</p><p><b>  外文原文47</b&g

33、t;</p><p><b>  中文翻譯54</b></p><p><b>  1 前言</b></p><p>  1.1課題研究背景和現(xiàn)狀</p><p><b>  1.1.1研究背景</b></p><p>  21世紀(jì)以計算機為代表的信

34、息產(chǎn)業(yè),標(biāo)志著人類社會進入了信息時代,計算機網(wǎng)絡(luò)的研究和發(fā)展。特別是Internet在全球的推廣和應(yīng)用,對全世界科學(xué)、經(jīng)濟和社會產(chǎn)生了重大影響。而網(wǎng)絡(luò)通訊的出現(xiàn)又把全世界各個地方的人的距離拉得越來越近!隨著互聯(lián)網(wǎng)的普及,具有交互功能的應(yīng)用軟件日益受到親睞,尤其是即時通訊軟件ICS大受歡迎。163和263網(wǎng)站使用ICS的在線人數(shù)常達幾萬人,上百萬人同時出現(xiàn)在騰訊的QQ上。優(yōu)秀的ICS確 實為天南地北的人們的信息勾通提供了便利,對提高網(wǎng)站知

35、名度起到了至關(guān)重要的作用, 國外有的公司甚至把ICS作為支柱軟件推出。</p><p>  1.1.2研究現(xiàn)狀和發(fā)展趨勢</p><p>  自1990s,四位以色列人推出的ICQ后,IM首次出現(xiàn),憑借實時在線的交互特性迅速風(fēng)靡全球。如今,IM軟件正逐漸成為一個集合了文字、視頻、音頻業(yè)務(wù)以及多種增值業(yè)務(wù)的多媒體網(wǎng)絡(luò)通信軟件,憑借其所具有的廉價性和方便性,以及功能不斷完善,IM已經(jīng)和WWW、

36、Email等一起成為網(wǎng)民們最喜愛的網(wǎng)絡(luò)服務(wù)之一。尤其在國內(nèi),騰訊QQ普及率遠高于Email,在部分中國網(wǎng)民眼中上網(wǎng)基本等價于使用QQ等。2010年3月5日19時52分58秒,騰訊QQ同時在線用戶數(shù)突破了1億。截止到2009年3月18日,QQ官方宣布注冊賬戶數(shù)量超過8.919億,活躍賬戶數(shù)量超過3.766億。</p><p>  近年來公共互聯(lián)網(wǎng)上的即時通訊發(fā)展迅猛,并向著未來通信和協(xié)作的主要模式演化。這種演化主要

37、表現(xiàn)為:從文本向話音、視頻和多媒體演化;從固定網(wǎng)絡(luò)向無線移動演化;從個人通信向企業(yè)即時通信和協(xié)作演化;在體系結(jié)構(gòu)方面,從集中服務(wù)器向?qū)Φ冗B接P2P演化;從專門系統(tǒng)向開放系統(tǒng)演化,推動實現(xiàn)不同系統(tǒng)的互通??傮w看,是從即時通訊向新一代統(tǒng)一消息演化。</p><p>  1.2本課題研究的目的和意義</p><p>  即時通訊(Instant messaging,簡稱IM)是一個終端服務(wù),允許

38、兩人或多人使用網(wǎng)絡(luò)即時地傳遞文字信息、文件、語音與視頻交流。它是一種使人們能在網(wǎng)上識別在線用戶并與他們實時交換消息的技術(shù)。即時通訊被認為比電子郵件更具有自發(fā)性,甚至能在進行實時文本對話的同時瀏覽網(wǎng)上信息。     利用“即時通訊”工具,用戶間可以實現(xiàn)異地文字、語言、視頻的實時互通;同時,借助即時通訊工具,還可以幫助企業(yè)提高業(yè)務(wù)協(xié)同性及反饋的敏感度和快捷度。作為使用頻率最高的網(wǎng)絡(luò)軟件,即時通訊已被認為是現(xiàn)

39、代交流方式的新象征。</p><p>  1.3開發(fā)工具及工具簡介</p><p>  操作系統(tǒng):Linux操作系統(tǒng)</p><p>  數(shù)據(jù)庫:SQLite</p><p>  編程語言:C++語言</p><p>  開發(fā)工具:QT編程軟件</p><p>  1.3.1Linux操作系統(tǒng)&

40、lt;/p><p>  最早的Fedora Linux社區(qū)的目標(biāo)是Red Hat Linux制作并發(fā)布第三方的軟件包,然而當(dāng)Red Hat Linux停止發(fā)行后,F(xiàn)edora社區(qū)便集成到Red Hat贊助的Fedora Project,目標(biāo)是開發(fā)出由社區(qū)支持的操作系統(tǒng)Red Hat,Enterprise Linux則取代Red Hat Linux成為官方支持的系統(tǒng)版本。 </p><p>  

41、Fedora Core是眾多Linux發(fā)行套件之一。它是一套從Red Hat Linux 發(fā)展出來的免費Linux 系統(tǒng)。現(xiàn)時Fedora最新的版本是Fedora16,F(xiàn)edora是Linux發(fā)行版中更新最快的之一,通常每6個月發(fā)布一個正式的新版本。 </p><p>  Fedora和Red Hat這兩個Linux的發(fā)行版聯(lián)系很密切。Red Hat自9.0以后,不再發(fā)布桌面版的,而是把這個項目與開源社區(qū)合作,于

42、是就有了Fedora 這個 Linux 發(fā)行版。Fedora 可以說是Red hat桌面版本的延續(xù),只不過是與開源社區(qū)合作。</p><p>  1.3.2數(shù)據(jù)庫SQLite</p><p>  數(shù)據(jù)庫是依照某種數(shù)據(jù)模型組織起來并存放二級存儲器中的數(shù)據(jù)集合。這種數(shù)據(jù)集合具有如下特點:盡可能不重復(fù),以最優(yōu)方式為某個特定組織的多種應(yīng)用服務(wù),其數(shù)據(jù)結(jié)構(gòu)獨立于使用它的應(yīng)用程序,對數(shù)據(jù)的增、刪、改和

43、檢索由統(tǒng)一軟件進行管理和控制。從發(fā)展的歷史看,數(shù)據(jù)庫是數(shù)據(jù)管理的高級階段,它是由文件管理系統(tǒng)發(fā)展起來的。</p><p>  SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 T

44、cl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。 至今已經(jīng)有12個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。</p><p>  1.3.3開發(fā)語言C++語言</p><p>  C++程序設(shè)計語言是由來自AT&

45、amp;T Bell Laboratories的Bjarne Stroustrup(即本文作者)設(shè)計和實現(xiàn)的,它兼具Simula語言在組織與設(shè)計方面的特性以及適用于系統(tǒng)程序設(shè)計的C語言設(shè)施。C++最初的版本被稱作“帶類的(C with classes)”[Stroustrup,1980],在1980年被第一次投入使用;當(dāng)時它只支持系統(tǒng)程序設(shè)計(§3)和數(shù)據(jù)抽象技術(shù)(§4.1)。支持面向?qū)ο蟪绦蛟O(shè)計的語言設(shè)施在1983

46、年被加入C++;之后,面向?qū)ο笤O(shè)計方法和面向?qū)ο蟪绦蛟O(shè)計技術(shù)就逐漸進入了C++領(lǐng)域。在1985年,C++第一次投入商業(yè)市場[Stroustrup,1986][Stroustrup,1986b]。在1987至1989年間,支持范型程序設(shè)計的語言設(shè)施也被加進了C++[Ellis,1990][Stroustrup,1991]。 </p><p>  隨著若干獨立開發(fā)的C++實現(xiàn)產(chǎn)品的出現(xiàn)和廣泛應(yīng)用,正式的C++標(biāo)準(zhǔn)化工

47、作在1990年啟動。標(biāo)準(zhǔn)化工作由ANSI(American National Standard Institute)以及后來加入的ISO(International Standards Organization)負責(zé)。1998年正式發(fā)布了C++語言的國際標(biāo)準(zhǔn)[C++,1998]。在標(biāo)準(zhǔn)化工作進展期間,標(biāo)準(zhǔn)委員會充當(dāng)了一個重要的角色,其發(fā)布的C++標(biāo)準(zhǔn)之草案在正式標(biāo)準(zhǔn)發(fā)布之前,一直被作為過渡標(biāo)準(zhǔn)而存在。</p><p&

48、gt;  1.3.4 Qt編程軟件</p><p>  Qt是一個1991年由奇趣科技開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程式,也可用于開發(fā)非GUI程式,比如控制臺工具和服務(wù)器。Qt是面向?qū)ο笳Z言,易于擴展,并且允許組件編程。2008年,奇趣科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具。在發(fā)布Qt 4.6 的同時,作為 Qt 開發(fā)跨平臺 IDE 的 Qt Creat

49、or 也發(fā)布了更新版本。Qt Creator 1.3 和 Qt 4.6共同構(gòu)成的 Qt SDK,包含了開發(fā)跨平臺應(yīng)用程序所需的全部功能。 Qt Creator是一個用于Qt開發(fā)的輕量級跨平臺集成開發(fā)環(huán)境。Qt Creator可帶來兩大關(guān)鍵益處:提供首個專為支持跨平臺開發(fā)而設(shè)計的集成開發(fā)環(huán)境 (IDE),并確保首次接觸Qt框架的開發(fā)人員能迅速上手和操作。 Qt Creator包含了一套用于創(chuàng)建和測試基于Qt應(yīng)用程序的高效工具,包括: 一個

50、高級的C++代碼編輯器 上下文感知幫助系統(tǒng) 可視化調(diào)試器 源代碼管理 項目和構(gòu)建管理工具 Qt Creator在LGPL2.1版本授權(quán)下有效,并且接受代碼貢獻。</p><p>  2 即時通信軟件系統(tǒng)總體設(shè)計</p><p>  2.1即使通信系統(tǒng)總體結(jié)構(gòu)及總體需求</p><p>  本系統(tǒng)是一個即時通訊程序,目前實現(xiàn)是在局域網(wǎng)下。本系統(tǒng)分為服務(wù)器和客戶端兩個

51、應(yīng)用程序,服務(wù)器負責(zé)管理客戶端,客戶端之間自由通訊。服務(wù)器端和客戶端之間使用TCP協(xié)議進行通信。模塊的工作方式如下:</p><p>  圖2-1 服務(wù)器和客戶端工作方式簡圖</p><p>  為了開發(fā)出符合要求的網(wǎng)絡(luò)聊天程序,首先必須知道使用者的需求。對需求的深入理解是開發(fā)工作獲得成功的前提條件,它對目標(biāo)項目提出完整、準(zhǔn)確、清晰、具體的要求。</p><p>

52、<b>  軟件的功能需求:</b></p><p><b>  1、登錄功能。</b></p><p>  2、申請新用戶的功能。</p><p>  3、客戶可以通過服務(wù)器轉(zhuǎn)發(fā),實現(xiàn)一對一的聊天。</p><p><b>  4、顯示在線好友。</b></p>

53、<p>  5、服務(wù)器顯示所有用戶及狀態(tài)。</p><p>  6、服務(wù)器端可以保存用戶的信息,同時將信息保存在文件和數(shù)據(jù)庫中。</p><p>  7、客戶端程序可以顯示好友列表。</p><p>  8、應(yīng)該具有易用、穩(wěn)定的圖形界面。</p><p>  9、系統(tǒng)實現(xiàn)保存聊天記錄的功能。</p><p>

54、;  10、發(fā)送系統(tǒng)消息。</p><p>  11、服務(wù)器端保存錯誤日志。</p><p>  12、從數(shù)據(jù)庫中讀取保存用戶信息。</p><p>  2.2總體性能需求分析</p><p>  2.2.1服務(wù)器端性能需求</p><p>  服務(wù)器需要同時連接很多個用戶,并能提供給這些連接用戶所需要的任務(wù)處理請求,

55、這就要求服務(wù)器能同時處理多個客戶端連接。</p><p>  服務(wù)器模型一般分為循環(huán)服務(wù)器和并發(fā)服務(wù)器,循環(huán)服務(wù)器一次只能處理一個連接,也就是說同一時間只能由一個用戶連接到服務(wù)器進行消息處理,這種情況是不被允許的。</p><p>  因此我們將采用多線程方式的并發(fā)服務(wù)器來設(shè)計服務(wù)器端,這樣將能從很大程度上提高服務(wù)器的運行效率。</p><p>  2.2.2客戶端

56、端性能需求</p><p>  客戶端只需要連接到服務(wù)器便可以進行任務(wù)的處理工作,因此客戶端的主要性能要求為圖形界面運行的穩(wěn)定性和對出錯信息的及時反映。</p><p>  當(dāng)一個窗體出現(xiàn)問題時能夠及時的處理,讓主程序不受影響。</p><p>  2.2.3錯誤處理需求</p><p>  所有的應(yīng)用程序在運行過程中都會出現(xiàn)出錯的情況,這種

57、錯誤可能來自于程序本身的BUG也可能是用戶操作的失誤所造成的。當(dāng)有錯誤發(fā)生時,我們應(yīng)該有一個很好的機制來保障錯誤能夠及時地被排除。</p><p>  因此,當(dāng)應(yīng)用程序出現(xiàn)了錯誤的時候我們就需要程序能提供給我們出錯的信息,這樣用戶就能夠很快的找出具體的出錯原因,以便尋找合理的途徑去解決它。</p><p><b>  3 程序設(shè)計方案</b></p>

58、<p><b>  3.1方案比較</b></p><p>  3.1.1采用TCP方式連接</p><p>  TCP方式連接的一個顯著特點就是需要有服務(wù)器,這種類型的程序通常被稱為客戶機/服務(wù)器模式。</p><p>  客戶機/服務(wù)器模型也是一種網(wǎng)絡(luò)模型,它并不是定義了網(wǎng)絡(luò)的層次結(jié)構(gòu),而是描述了一種網(wǎng)絡(luò)程序運行的方式。</

59、p><p>  客戶及/服務(wù)器模型將網(wǎng)絡(luò)應(yīng)用程序分為客戶和服務(wù)器兩部分。客戶方對服務(wù)器方發(fā)送信息請求,服務(wù)器方對其做出相應(yīng)回答,提供服務(wù)。在TCP/IP網(wǎng)絡(luò)應(yīng)用中,多數(shù)網(wǎng)絡(luò)應(yīng)用程序是使用客戶/服務(wù)器模型設(shè)計的。服務(wù)程序通常在一個眾所周知的地址監(jiān)聽對服務(wù)的請求,也就是說,服務(wù)進程一直處于休眠狀態(tài),直到一個客戶程序提出了請求信息。此時,服務(wù)程序被"驚醒"并且為客戶提供服務(wù),對客戶的請求做出適當(dāng)?shù)姆磻?yīng)。

60、雖然基于連接的服務(wù)是設(shè)計客戶/服務(wù)器應(yīng)用程序的標(biāo)準(zhǔn),但是通過運用中間件的原理,可以將客戶端和服務(wù)端進行解耦合,使二者成為獨立的一部分,服務(wù)器只需提供一個servant,而客戶端只需獲取servant的代理,二者就可以進行通信,甚至服務(wù)器端和客戶端可以使用不同的語言來編寫。</p><p>  當(dāng)建立服務(wù)器程序時,應(yīng)該將服務(wù)器程序設(shè)計成等候客戶的請求。TCP傳輸層通過協(xié)議端口和應(yīng)用程序通信,也就是說,為了接收客戶請

61、求,服務(wù)器程序必須對傳輸層的一個特定協(xié)議端口進行偵聽。</p><p>  同時,客戶與服務(wù)器這兩個術(shù)語不是對應(yīng)用的特定組成部分的嚴(yán)格指稱,而是表示在某個請求從發(fā)生到結(jié)束期間,應(yīng)用的某些部分所承擔(dān)的角色: </p><p>  客戶是主動的實體。它們向服務(wù)器發(fā)出服務(wù)請求。 </p><p>  服務(wù)器是被動的實體。它們提供服務(wù),響應(yīng)客戶請求。 </p>

62、<p>  在從不發(fā)出請求、而只是響應(yīng)請求的意義上,許多服務(wù)器常常不是 “純粹的”服務(wù)器:它們常常充當(dāng)某些客戶的服務(wù)器,但為了完成它們的客戶的請求,它們又會充當(dāng)另外的服務(wù)器的客戶。與此類似,在只從某個對象那里請求服務(wù)的意義上,客戶常常也不是“純粹的”客戶:它們常常是客戶-服務(wù)器混合物。例如,客戶可以在服務(wù)器上啟動一個長時間運行的操作,在啟動該操作時,客戶可以向服務(wù)器提供回調(diào)對象(callback object ),供服務(wù)器用

63、于在操作完成時向客戶發(fā)出通知。在這種情況下,客戶在啟動操</p><p>  作時充當(dāng)客戶,而在接收操作完成通知時充當(dāng)服務(wù)器。這樣的角色反轉(zhuǎn)在許多系統(tǒng)中都很常見,所以許多客戶-服務(wù)器系統(tǒng)常??梢员桓鼫?zhǔn)確地描述為對等(peer-to-peer )系統(tǒng)。</p><p>  3.1.2采用UDP方式連接</p><p>  采用UDP協(xié)議的程序不需要有服務(wù)器,兩個程序之

64、間可以通過無連接的方式進行通信,所以無連接是使用UDP協(xié)議程序的一個顯著特點。</p><p>  使用無連接協(xié)議的程序和使用面向連接協(xié)議的服務(wù)器程序之間的主要相似之處是它們都必須對一個協(xié)議端口進行偵聽。例如,無連接和連接服務(wù)器程序必須在協(xié)議端口偵聽客戶請求。同樣,由于無連接客戶程序沒有和遠地主機建立直接連接,所以它也必須對協(xié)議端口進行偵聽,以便接收以對它服務(wù)請求產(chǎn)生的數(shù)據(jù)報應(yīng)答。</p><

65、p>  無連接客戶程序也對一個協(xié)議端口進行偵聽。使用無連接協(xié)議的程序不和遠地主機建立直接連接。無連接客戶程序使用數(shù)據(jù)報發(fā)送網(wǎng)絡(luò)服務(wù)請求,它不建立點到點連接。因此無連接客戶程序必須在一個協(xié)議端口,對應(yīng)答數(shù)據(jù)報進行偵聽。</p><p><b>  3.2方案比較</b></p><p>  綜合以上分析,本軟件開發(fā)選擇方案如下:</p><p&

66、gt;  Linux操作系統(tǒng),采用C++開發(fā)語言,TCP協(xié)議進行連接。采用C/S架構(gòu),運用ICE中間件連接服務(wù)器和客戶端。系統(tǒng)界面美觀內(nèi)容豐富,很好的實現(xiàn)了服務(wù)器與用戶、用戶與用戶的交互。</p><p><b>  3.3總體設(shè)計方案</b></p><p>  為實現(xiàn)網(wǎng)絡(luò)聊天的功能,服務(wù)器與客戶端采用了TCP/IP和UDP/IP方式連接,在設(shè)計聊天方案時,實行將所

67、有信息發(fā)往服務(wù)器端,再由服務(wù)器進行分別處理的思路,服務(wù)器端是所有信息的中心。</p><p>  3.3.1服務(wù)器端功能模塊劃分</p><p>  服務(wù)器負責(zé)向各個客戶端發(fā)布系統(tǒng)消息。</p><p>  接受來自客戶端的各種信息并分別處理。</p><p>  針對這些操作,服務(wù)器做了如下的模塊劃分:</p><p&g

68、t;  處理登陸信息模塊:檢查登陸信息是否正確,并向客戶端返回登陸信息。</p><p>  處理聊天信息模塊:轉(zhuǎn)發(fā)消息給指定的用戶。</p><p>  處理申請信息模塊:通過用戶申請模塊進行新用戶的注冊,保存該用戶信息。</p><p>  發(fā)布系統(tǒng)消息模塊:將消息發(fā)給各客戶端,改寫用戶在服務(wù)器端和客戶端的狀態(tài)。</p><p><

69、b>  服務(wù)器功能示意圖:</b></p><p>  圖3-1 服務(wù)器功能示意圖</p><p>  3.3.2客戶端端功能模塊劃分</p><p>  客戶端主要負責(zé)處理用戶的操作信息,當(dāng)用戶做出相應(yīng)的動作時客戶端應(yīng)該能夠及時地做出相應(yīng),當(dāng)GTK圖形程序檢測到鼠標(biāo)點擊時,將觸發(fā)一個事件,對該事件進行動作的定義和函數(shù)的編寫便可完成相應(yīng)的動作。因

70、此,針對這些操作特性,將客戶端模塊進行如下劃分:</p><p>  登陸功能模塊:建立與服務(wù)器的連接并登陸,能顯示登陸錯誤信息。</p><p>  界面顯示模塊:將在線好友顯示在好友列表中,并顯示其當(dāng)前狀態(tài)。</p><p>  聊天功能模塊:處理各種聊天信息,并判斷消息類型。</p><p>  修改信息模塊:修改用戶名字密碼。<

71、/p><p>  配置信息模塊:提供基本的軟件配置操作。</p><p><b>  客戶端功能示意圖:</b></p><p>  圖3-2 客戶端功能示意圖</p><p>  3.3.3UDP協(xié)議</p><p>  UDP通訊模式圖如下:</p><p>  Yes

72、 No</p><p>  圖3-3 UDP通信模式圖</p><p>  3.3.4TCP協(xié)議</p><p>  TCP協(xié)議圖如下: </p><p><b>  Server</b></p><p><b

73、>  Client</b></p><p>  圖3-4 TCP通信圖</p><p>  3.3.5消息標(biāo)識定義</p><p>  消息頭,包含發(fā)送者,信息內(nèi)容,接受者 </p><p>  struct message</p><p><b>  {</b></p&

74、gt;<p>  string sender;</p><p>  string mes;</p><p>  string receiver;</p><p><b>  }</b></p><p>  用戶信息,包含姓名,密碼,號碼</p><p>  struct userin

75、fo</p><p><b>  {</b></p><p>  string name;</p><p>  string pwd;</p><p>  string no;</p><p><b>  } </b></p><p>  好友列表

76、 </p><p>  sequence < string > frilist</p><p>  消息隊列 </p><p>  sequence < message > messagelist</p><p>  用戶-用戶信息 </p><p>  dic

77、tionary < string, userinfo > userinfolist</p><p>  系統(tǒng)消息 </p><p>  sequence < message > offlinemessage</p><p>  在線用戶 </p><p>  sequence < stri

78、ng > liveuser</p><p>  3.3.6服務(wù)器接口函數(shù)</p><p>  服務(wù)器接口funcpp,該接口提供以下操作:</p><p><b>  登入系統(tǒng)</b></p><p>  int Logins (string name, string pwd);</p><p&

79、gt;<b>  注冊用戶</b></p><p>  int Regists (string name, string pwd, string picpath);</p><p><b>  獲取用戶名</b></p><p>  int Getusername (string name);</p><

80、;p><b>  獲取用戶狀態(tài)</b></p><p>  String station()</p><p><b>  獲取好友列表</b></p><p>  frilist Retfrilist(string name);</p><p><b>  新增加用戶</b&g

81、t;</p><p>  int Addfriend(string name,string friname);</p><p><b>  退出用戶</b></p><p>  int Delfriend(string name,string friname);</p><p><b>  將用戶信息寫入文件&

82、lt;/b></p><p>  int Writeofflinemesfile();</p><p><b>  讀取文件中用戶信息</b></p><p>  offlinemessage Readofflinemesfile();</p><p><b>  發(fā)送消息</b></p

83、><p>  int Sendmessage(string recverrname,string sendername,string message,string sendtime);</p><p>  sendtime);</p><p>  獲取是否在線 </p><p>  int Getstat(string name);<

84、;/p><p>  添加日志 </p><p>  void writelog(string s);</p><p>  用戶在線 </p><p>  int Loginser(string name); </p><p>  4 即時通訊系統(tǒng)軟件詳細設(shè)計</p><p

85、>  4.1服務(wù)器端設(shè)計思想</p><p>  本系統(tǒng)軟件產(chǎn)品的主要功能是實現(xiàn)網(wǎng)上聊天,可以讓多個用戶同時互相通信,有一個服務(wù)器,用于檢查客戶登陸請求,轉(zhuǎn)發(fā)客戶所發(fā)出的消息,并負責(zé)刪除退出的用戶。對服務(wù)器的某一可用端口進行監(jiān)聽,以獲得客戶端請求,從而對客戶端請求進行處理。因為是多客戶同時請求,所以要采用多線程,為每一個在線用戶分配一個線程,實時處理每個客戶端的請求。服務(wù)器端要求實現(xiàn)公共數(shù)據(jù)處理,處理公共數(shù)

86、據(jù),客戶數(shù)據(jù)資料的存儲與讀取,聊天記錄資料的存取和讀取等。端口監(jiān)聽器,監(jiān)聽服務(wù)器某一端口,為每一在線客戶建立一個會話線程。客戶請求處理處理客戶的請求,根據(jù)客戶的請求執(zhí)行相應(yīng)的操作。</p><p>  服務(wù)器運行后即處于監(jiān)聽狀態(tài),當(dāng)監(jiān)聽到有連接請求時服務(wù)器進入消息處理流程,因為服務(wù)器為并發(fā)服務(wù)器,所以可以同時對多個請求做出相應(yīng)。</p><p>  由于服務(wù)器與客戶端是相互獨立的,啟動服務(wù)

87、器后,服務(wù)器等待客戶端與之相連,同時,服務(wù)器本身可以做相應(yīng)的操作:從數(shù)據(jù)庫讀取用戶信息、從文件中讀取用戶信息、將用戶信息保存到數(shù)據(jù)庫中(當(dāng)有新用戶注冊時)、用戶信息保存到文件中(當(dāng)有新用戶注冊時)。</p><p>  服務(wù)器工作方式簡圖如下:</p><p>  圖4-1 服務(wù)器工作方式簡圖</p><p>  4.2客戶端設(shè)計思想</p><

88、;p>  本系統(tǒng)軟件產(chǎn)品的主要功能是實現(xiàn)網(wǎng)上聊天,可以讓多個用戶同時互相通信,有一個服服務(wù)器,用于檢查客戶登陸請求,轉(zhuǎn)發(fā)客戶所發(fā)出的消息,并負責(zé)刪除退出的用戶.服務(wù)器任務(wù)為從數(shù)據(jù)庫讀取用戶信息、從文件中讀取用戶信息、將用戶信息保存到數(shù)據(jù)庫中(當(dāng)有新用戶注冊時)、用戶信息保存到文件中(當(dāng)有新用戶注冊時)。其主要是在后臺工作。</p><p>  而對于客戶端,其主要的功能是實現(xiàn)用戶之間的通信,用穩(wěn)定的圖形化界

89、面表示客戶端,以便直觀的進行通信??蛻舳税韵陆缑妫旱顷懡缑?、程序主窗口、聊天界面、注冊用戶界面、彈出離線消息窗口、添加刪除好友窗口。</p><p>  下圖為客戶端前臺窗口工作方式簡圖:</p><p>  圖4-2 客戶端前臺窗口工作方式簡圖</p><p>  客戶端運行后首先要用戶登錄到服務(wù)器,如果登陸成功服務(wù)器會將在線的用戶聯(lián)系人列表發(fā)送給客戶端,此

90、時客戶端即可顯示有哪些好友在線而哪些是離線的。當(dāng)用戶點擊在線好友時便會彈出一個聊天信息窗體,該窗體用于發(fā)送和接收用戶的聊天信息。當(dāng)用戶點擊離線用戶時便會觸發(fā)一個離線消息事件,該事件通過服務(wù)器轉(zhuǎn)發(fā)方式發(fā)送給離線用戶,當(dāng)對方上線時便可查看該離線消息。</p><p>  服務(wù)器程序啟動后,如服務(wù)器流程圖所示,通過雙線程,同時啟動ICE的Server端和ICE的Client端,服務(wù)器的Server端用來等待客戶端的Cl

91、ient連接,服務(wù)器的Client端用來連接客戶端的Server端。</p><p>  啟動客戶端,通過IP和端口號連接上服務(wù)器的Server端,同時客戶端啟動自身的Server端,此時服務(wù)器的Client端連接客戶端的Server端,此時,客戶端與服務(wù)器之間建立了連接。</p><p>  客戶端服務(wù)器連接后,服務(wù)器通過創(chuàng)建通信器以及適配器,并在通信器中建立Servant以便客戶端調(diào)用

92、。</p><p>  下圖為服務(wù)器和客戶端之間連接方式(ICE的C/S連接)的簡圖:</p><p>  圖4-3 ICE下服務(wù)器和客戶端工作方式簡圖</p><p>  客戶端后臺工作方式簡圖如下:</p><p>  圖4-4 客戶端后臺工作方式簡圖</p><p>  4.3服務(wù)器端詳細設(shè)計</p&g

93、t;<p>  4.3.1服務(wù)器端主體</p><p>  服務(wù)器主體函數(shù)主要涉及是創(chuàng)建兩個線程,一個是Server端線程,一個Clinet端線程。</p><p>  Server端線程負責(zé)提供連接,供客戶端的Client端連接;</p><p>  Client端負責(zé)連接Client端。</p><p><b> 

94、 創(chuàng)建兩個新線程:</b></p><p>  IceUtil::ThreadPtr st = new serverthread;</p><p>  IceUtil::ThreadPtr ct = new clientthread;</p><p><b>  啟動線程:</b></p><p>  Ice

95、Util::ThreadControl tst = st->start();</p><p>  IceUtil::ThreadControl tct = ct->start();</p><p>  4.3.2服務(wù)器端線程實現(xiàn)</p><p>  服務(wù)器有兩個類serverthread和clientthread,繼承自基類IceUtil::Thread

96、,兩個類的public的run()方法用來啟動ICE線程。</p><p>  serverthread類的run方法完成工作是:初始化通信器,創(chuàng)建適配器,建立Servant,將Servant加入通信器,激活通信器,然后等待連接,同時完成工作后關(guān)閉通信器。</p><p>  clientthread類的run方法完成的工作是:初始化通信器,創(chuàng)建適配器,建立server端的代理,查找相應(yīng)的

97、Servant代理,通過代理調(diào)用相應(yīng)接口。</p><p>  在clientthread類的run方法中,通過代理調(diào)用相應(yīng)的接口函數(shù),加上選擇機制,可以完成服務(wù)器端的四個功能:從數(shù)據(jù)庫讀取用戶信息、從文件中讀取用戶信息、將用戶信息保存到數(shù)據(jù)庫中(當(dāng)有新用戶注冊時)、用戶信息保存到文件中(當(dāng)有新用戶注冊時)。</p><p>  在服務(wù)器和客戶端連接時,二者相連的端口號直接寫入了配置文件,

98、這樣就無需用硬寫入的方式在程序中就寫入連接的IP和端口號,從而方便了我們以后可以修改,而不必改變整個程序,ICE的配置文件的方式提供了這樣的方便。</p><p>  Ice 屬性機制提供了一種簡單的配置 Ice 的途徑,你可以在配置文件中、或在命令行上設(shè)置屬性。這也適用于你自己的應(yīng)用:你可以輕松地使用Properties接口,訪問你為自己的需要而創(chuàng)建的、應(yīng)用專用的屬性。用于訪問屬性值的 API 小而簡單,所以要

99、在運行時用它獲取屬性值很容易;這個 API 還很靈活,如果有需要,它能讓你使用多個不同的屬性集和配置文件。</p><p>  4.3.3服務(wù)器端函數(shù)實現(xiàn)</p><p>  服務(wù)器端提供以下函數(shù)的實現(xiàn):</p><p><b>  登入系統(tǒng)</b></p><p>  int Logins (string name,

100、string pwd);</p><p><b>  注冊用戶</b></p><p>  int Regists (string name, string pwd, string picpath);</p><p><b>  獲取用戶名</b></p><p>  int Getusername

101、 (string name);</p><p><b>  獲取用戶頭像</b></p><p>  string Getfripic(string name);</p><p><b>  獲取好友列表</b></p><p>  frilist Retfrilist (string name);

102、</p><p><b>  添加好友</b></p><p>  int Addfriend(string name,string friname);</p><p><b>  刪除好友</b></p><p>  int Delfriend(string name,string friname

103、);</p><p><b>  將用戶信息寫入文件</b></p><p>  int Writeofflinemesfile();</p><p><b>  讀取文件中用戶信息</b></p><p>  offlinemessage Readofflinemesfile();</p&g

104、t;<p><b>  發(fā)送消息</b></p><p>  int Sendmessage(string recverrname,string sendername,string message,string sendtime);</p><p><b>  發(fā)送離線消息</b></p><p>  int

105、 Sendofflinemes(string recvername,string sendername,string message,string sendtime);</p><p><b>  獲取消息</b></p><p>  message Getmessage(string recvername,string sendername);</p>

106、<p><b>  獲取是否在線</b></p><p>  int Getstat(string name);</p><p><b>  獲取消息數(shù)量</b></p><p>  int Getmessagenum();</p><p><b>  獲取系統(tǒng)消息數(shù)量<

107、/b></p><p>  int Getsysnum();</p><p><b>  獲取系統(tǒng)消息</b></p><p>  message Getsysmessage(string recvername);</p><p><b>  獲取當(dāng)前時間</b></p><

108、;p>  char* currenttime(char* curtime, const char* format);</p><p><b>  添加日志</b></p><p>  void writelog(string s);</p><p>  用戶在線 </p><p>  int Log

109、inser(string name); </p><p>  離線用戶 </p><p>  int Logoutser(string name);</p><p>  4.4客戶端圖形界面詳細設(shè)計</p><p>  即時通信軟件的客戶端是使用圖形用戶界面來實現(xiàn)的,程序運行后激活主窗體,在主窗體上點擊設(shè)置為敏感狀態(tài)的按鈕就

110、會產(chǎn)生相應(yīng)的事件,該事件將會觸發(fā)一個消息驅(qū)動所指定的函數(shù)來處理這個操作。</p><p>  本軟件使用QT圖形界面來實現(xiàn),其具有以下優(yōu)點:</p><p>  面向?qū)ο螅篞t 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常 方便的。Qt 提供了一種稱為signals/slots 的安全類型來替代 callback,這使得各個元件之間的協(xié)同工作變得十分簡

111、單;</p><p>  豐富的API:Qt包括多達 250個以上的 C++ 類,還提供基于模板的 collections, serialization, file, I/O device, directory management, date/time 類。</p><p>  登陸界面的設(shè)計是整個客戶端的切入點,客戶端的整個設(shè)計都是在圖形界面下完成的。</p><p

112、>  圖形用戶界面或圖形用戶接口(Graphical User Interface,GUI)是指采用圖形方式顯示的計算機操作環(huán)境用戶接口。與早期計算機使用的命令行界面相比,圖形界面對于用戶來說更為簡便易用。GUI的廣泛應(yīng)用是當(dāng)今計算機發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用人們從此不再需要死記硬背大量的命令,取而代之的是可用通過窗口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型、占用資

113、源少、高性能、高可靠性、便于移植、可配置等特點。</p><p>  圖形界面穩(wěn)定實用是前提,在穩(wěn)定的前提下要力求做好美觀,簡潔,客戶端通過創(chuàng)建圖形界面,并通過代理調(diào)用服務(wù)器中的接口,再運用QT的機制,通過點擊按鈕等方式獲取相應(yīng)響應(yīng),從而實現(xiàn)相應(yīng)操作。</p><p><b>  4.4.1連接窗體</b></p><p>  連接窗體的實現(xiàn)如

114、下:</p><p>  在連接窗體中,有兩個Button(按鈕(下同))和兩個LineEdit。</p><p>  IP對應(yīng)的LineEdit響應(yīng)SaveIp函數(shù),用以保存Ip地址。</p><p><b>  其實現(xiàn)如下:</b></p><p>  void MainWindow::SaveIp()</p&

115、gt;<p><b>  {</b></p><p>  QString qip;</p><p>  qip.append(ui->text1->text());</p><p>  serip= qip.toStdString();</p><p><b>  }</b>

116、;</p><p>  Port對應(yīng)的LineEdit響應(yīng)SavePort函數(shù),用以保存Port號。</p><p><b>  其實現(xiàn)如下:</b></p><p>  void MainWindow::SavePort()</p><p><b>  {</b></p><p

溫馨提示

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

評論

0/150

提交評論