【正文】
本科畢業(yè)設(shè)計(論文)即時通信軟件的開發(fā)與設(shè)計 攀枝花學(xué)院本科畢業(yè)設(shè)計(論文) 摘要摘 要 隨著計算機互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,國家對互聯(lián)網(wǎng)的不斷重視,各種各樣的社交軟件層出不窮,使用通信軟件交流成為了人們生活中必不可少的一部分。即時通訊工具作為未來跨越互聯(lián)網(wǎng)與移動互聯(lián)網(wǎng)的業(yè)務(wù),其發(fā)展的潛力是十分巨大的,同時,其商業(yè)模式的發(fā)展將是未來要關(guān)注的焦點。免費與收費相結(jié)合的發(fā)展策略將是IM的主要發(fā)展模式。本論文實現(xiàn)一個運行于windows平臺的基于局域網(wǎng)的即時聊天系統(tǒng)。該聊天軟件包括服務(wù)器端和客戶端兩個模塊,客戶端向服務(wù)器端發(fā)送服務(wù)請求服務(wù)器端向客戶端提供相應(yīng)的服務(wù)。客戶端主要實現(xiàn)用戶登錄、注冊、聊天等功能。該軟件采用多線程技術(shù)、tcp通信技術(shù)、udp通信技術(shù),并在傳輸數(shù)據(jù)時對消息實現(xiàn)序列化和數(shù)據(jù)的還原。該軟件能實現(xiàn)企業(yè)員工內(nèi)部聊天交流,避免企業(yè)內(nèi)部員工使用類似等軟件泄露內(nèi)部信息,但是該軟件只實現(xiàn)了登錄、注冊、聊天等基本功能,還有很多不足之處需要改進(jìn)。關(guān)鍵字 客戶端,服務(wù)器,c/s,即時通信,套接字.I攀枝花學(xué)院本科畢業(yè)設(shè)計(論文) ABSTRACT ABSTRACTWith the continuous development of puter technology, the Internet, the state continues to pay attention to the Internet, a variety of social software after another, using munication software exchange has bee an indispensable part of people39。s lives. Instant messaging as the future across the Internet and mobile Internet business, its development potential is enormous, while the development of its business model will be the focus of the future to pay attention. Free and fee development strategy will be a bination of IM39。s main development model.In this paper, the realization of a run on LANbased instant messaging system windows platform. The chat software includes server and client of two modules, the client sends a service request to the server to the client to provide appropriate services to the server. Client main implement user login, registration, chat and other functions. The software uses multithreading technology, tcp munication technology, udp munications technology, and in the transmission of data to achieve reduction message serialization and data.The software enables employees chat internal munication and to avoid internal staff use similar software leaked inside information, but the software only to realize the login, registration, chat, and other basic functions, there are many deficiencies need to be improved.Keywords client, server, c / s, instant messaging, socketsII攀枝花學(xué)院本科畢業(yè)設(shè)計(論文) 目錄目 錄摘要 IABSTRACT II1 前言 1 1 1 2 解決方案 22 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境 4 qt及qtcreator開發(fā)環(huán)境 4 qt簡介 4 Qt Creator簡介 5 mysql數(shù)據(jù)庫介紹 5 socket套接字介紹 6 IP 6 TCP 7 udp協(xié)議簡介 7 c/s 模式介紹 8 9 11 系統(tǒng)分析 11 功能需求分析 11 性能需求分析 12 數(shù)據(jù)需求分析 13 14 14 14 154 系統(tǒng)關(guān)鍵技術(shù)實現(xiàn) 16 16 195系統(tǒng)測試 33 33 33 33 34總結(jié) 36參考文獻(xiàn) 38致謝 39攀枝花學(xué)院本科畢業(yè)設(shè)計(論文) 前言1 前 言即時通信(instant messaging)是指網(wǎng)絡(luò)上用來進(jìn)行實時通訊的系統(tǒng)服務(wù),人們可以使用即時通信軟件以文字、圖片、文檔、語音、視頻的形式通過網(wǎng)絡(luò)進(jìn)行異地實時信息交流。隨著互聯(lián)網(wǎng)的不斷普及,使用通信軟件交流成為了人們生活中必不可少的一部分,而且人們對通信軟件的功能需求的不斷增大,即時通信軟件的功能也日趨完善,除了最基本的通訊功能外,逐漸集成了電子郵件、博客、微博、音樂、電視、游戲、電子支付和搜索等多種功能,而這些功能的集成也使得即時通信軟件已經(jīng)不再是一個單純的通信工具,它已經(jīng)成為了集信息交流、娛樂、電子商務(wù)、商務(wù)辦公、客戶服務(wù)于一身的綜合化信息平臺。即時通信將世界構(gòu)建成了一個整體,實現(xiàn)了信息交流的無國界;無論你身在美國、還是遙遠(yuǎn)的非洲、亦或是我們身處的中國,通過MSN或qq聊天就可以知道你現(xiàn)在正在干什么,將要干什么;即時通信應(yīng)用在企業(yè)辦公上,企業(yè)工作效率得到了很大的提升,群組聊天讓員工之間的技術(shù)探討暢通無阻;視頻會議技術(shù)讓你不再為繁瑣的會議東奔西走;這極大方便了我們的生活,提高了我們的生活品質(zhì)。因此,即時通信軟件的設(shè)計與開發(fā)具有重要意義。 國內(nèi)外即時通信系統(tǒng)發(fā)展迅速,特別是近年來即時通信軟件層出不窮,目前人們熟知的有騰訊、 MSN、UC、skype等即時通信軟件;還有最近幾年新起的微信、易信、米聊等移動端即時通信軟件。據(jù)一項數(shù)據(jù)調(diào)查顯示:2014年二季度末,微信和WeChat(微信海外版)。在微信月活賬戶持續(xù)增長的同時,同比增長45%,相比上季度也有6%的增幅。據(jù)相關(guān)統(tǒng)計,目前中國智能手機用戶在5億左右,這意味著,智能手機用戶幾乎都活躍在手機上。這些數(shù)據(jù)表明移動端的即時通信軟件現(xiàn)今有很大的市場,逐漸的由互聯(lián)網(wǎng)絡(luò)跨入移動互聯(lián)網(wǎng),發(fā)展?jié)摿κ志薮?。而今,隨著人們對生活娛樂的需求不斷增加,即時通信軟件不單單只有信息交流這一簡單的功能,它還集成了與人生活緊密相關(guān)的一些功能;比如:騰訊手機qq上的滴滴打車、qq電影票、騰訊新聞、qq錢包等。這些功能讓你體會到生活的便捷與快樂;讓你足不出戶就可以實現(xiàn)電影票的購買,而且還能幫你理財。即時通訊工具作為未來跨越互聯(lián)網(wǎng)與移動互聯(lián)網(wǎng)的業(yè)務(wù),其發(fā)展的潛力是十分巨大的,同時,其商業(yè)模式的發(fā)展將是未來要關(guān)注的焦點。免費與收費相結(jié)合的發(fā)展策略將是IM的主要發(fā)展模式。集成多種與人們生活息息相關(guān)的服務(wù)功能是IM的主要發(fā)展趨勢隨著電子商務(wù)的發(fā)展,支付工具遍地開花,即時通訊的經(jīng)濟價值將進(jìn)一步增強,也不可避免地遭遇更大的安全性問題。用戶信息泄露,盜號木馬、網(wǎng)絡(luò)詐騙釣魚等安全性問題屢見不鮮。只要連接到Internet互聯(lián)網(wǎng),用戶賬號和密碼被盜對黑客來說是件很容易的事。即時通信軟件一般要輸入個人賬號和密碼,驗證成功后方可為其提供服務(wù)。而目前的即時通信廠商很少考慮它的認(rèn)證機制。這給黑客可乘之機,攻擊者通過暴力破解、木馬欺騙等破解方法竊取密碼后冒充該用戶來查看聊天記錄并與其他用戶進(jìn)行通信,以此來竊取重要的信息。目前,大多數(shù)即時通信軟件在通訊時傳遞的信息或文件僅僅采用了弱加密甚至不加密的方式,黑客能很容易的利用此缺陷來監(jiān)聽、篡改、竊取用戶的重要數(shù)據(jù),這種泄密可能給用戶造成不可估量的損失;尤其是對一些商業(yè)機構(gòu)和金融機構(gòu),一旦泄密,將會構(gòu)成巨大的商業(yè)安全威脅。 解決方案為了解決以上所提到的問題,本軟件使用基于C/S模式的架構(gòu)模型,采用基于Socket的局域網(wǎng)通信工具的設(shè)計與實現(xiàn)方法。并且還采用tcp與udp通信協(xié)議來實現(xiàn)通信;基于Socket的局域網(wǎng)通信軟件可以為企業(yè)原有的局域網(wǎng)提供一種良好,安全,快速的通信機制它的實現(xiàn)無需對企業(yè)原有的局域網(wǎng)硬件進(jìn)行任何改動,具有實現(xiàn)成本低廉的優(yōu)點。而tcp協(xié)議是一種可靠的面向連接的傳輸協(xié)議,通過序列確認(rèn)和包重復(fù)機制提供可靠的數(shù)據(jù)流發(fā)送和應(yīng)用程序的虛擬連接服務(wù)。經(jīng)過3次握手建立連接發(fā)送數(shù)據(jù)。但tcp不是及時的傳輸協(xié)議。而udp協(xié)議的傳輸效率高,在企業(yè)局域網(wǎng)穩(wěn)定安全的環(huán)境下實現(xiàn)用戶聊天時用udp協(xié)議就可以很好的彌補tcp協(xié)議的不足。 而在數(shù)據(jù)方面,服務(wù)器將用戶個人信息、用戶好友列表信息、客戶端連接信息存放于數(shù)據(jù)庫中。整個軟件有客戶端和服務(wù)器端組成,將所有功能封裝于各式類文件中,后期維護簡單。38攀枝花學(xué)院本科畢業(yè)設(shè)計(論文) 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境2 系統(tǒng)開發(fā)關(guān)鍵技術(shù)及開發(fā)環(huán)境Qt是一個跨平臺應(yīng)用程序和UI開發(fā)框架。使用qt只需一次性開發(fā)應(yīng)用程序,無需重新編寫源代碼,便可跨不同的桌面和嵌入式操作系統(tǒng)部署這些應(yīng)用程序。 Qt Software的前生為創(chuàng)始于1994年的Trolltech(奇趣科技),Trolltech于2008年6月 被Nokia收購,加速了其跨平臺的開發(fā)戰(zhàn)略??偟膩碚f,相對于老舊的MFC和目前編程行業(yè)通行的VC++工具,Qt以其入門簡單,跨平臺以及嵌入式等方面有著無可代替的優(yōu)越性,當(dāng)然MFC的完整性以及內(nèi)容的豐富性是Qt不及的。但是由于Qt為開源框架,得到了眾多開發(fā)者的支持,因此qt的普及也在近千萬開發(fā)人員的基礎(chǔ)上,再次的得到發(fā)展。自從諾基亞宣布停止開發(fā)其和英特爾公司共同推出的Meego系統(tǒng)并大幅度裁員以來,Qt用以移動開發(fā)人員集聚減少,從而使得曾經(jīng)火熱的Qt減緩了在移動設(shè)備上的發(fā)展的步伐,但是正因為如此,Qt就更加專注于跨平臺。信號和槽是一種高級接口,應(yīng)用于對象之間的通信,它是QT的核心特性,也是QT區(qū)別于其它工具包的重要地方。信號和槽是QT自行定義的一種通信機制,它獨立于標(biāo)準(zhǔn)的C/C++語言。當(dāng) 一個特定事件發(fā)生的時候,一個信號被發(fā)射。Qt的窗口部件有很多預(yù)定義的信號, 但是我們總是可以通過繼承來加入我們自己的信號。槽就是一個可以被調(diào)用處理特定信號的函數(shù)。Qt的窗口部件又很多預(yù)定義的槽,但是通常的習(xí)慣是你可以加入自己的槽,這樣你就可以處理你所感興趣的信號。信號和槽的機制是類型安全的:一個信號的簽名必須與它的接收槽的簽名相匹 配。(實際上一個槽的簽名可以比它接收的信號的簽名少,因為它可以忽略額外的 簽名。)因為簽名是一致的,編譯器就可以幫助我們檢測類型不匹配。信號和槽是 寬松地聯(lián)系在一起的:一個發(fā)射信號的類不用知道也不用注意哪個槽要接收這個信號。Qt的信號和槽的機制可以保證如果你把一個信號和一個槽連接起來,槽會在正確的時間使用信號的參數(shù)而被調(diào)用。信號和槽可以使用任何數(shù)量、任何類型的參數(shù)。它們是完全類型安全的,不會再有回調(diào)核心轉(zhuǎn)儲(core dump)。 Qt Creator簡介 Qt Creator 是Qt被Nokia收購后推出的一款新的輕量級集成開發(fā)環(huán)境(IDE),能夠跨平臺運行,支持的系統(tǒng)包括Linux,Mac OS X 以及Windows.允許開發(fā)者為多桌面環(huán)境及移動設(shè)備平臺創(chuàng)建應(yīng)用程序。它包括一個可視化調(diào)試工具和集成的 GUI 版面和外形設(shè)計師。根據(jù)官方描述,Qt Creator的設(shè)計目標(biāo)是使開發(fā)人員能夠利用qt這個應(yīng)用程序框架更加快速及輕易的完成開發(fā)任務(wù)。在功能方面,Qt Creator包括項目生成向?qū)?、高級的C++代碼編輯器、瀏覽文件及類的工具、集成了Qt Designer 、Qt Assitant、Qt Linguist、圖形化的GDB調(diào)試前端,集成qmake構(gòu)建工具等。 mysql數(shù)據(jù)庫介紹MySQL的概述MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司。在2008年1月16號被Sun公司收購。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成 本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。MySQL是使用使用C和C++編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性特點;它