【正文】
date — NULL 否 出生日期 state int 1 0 否 在線狀態(tài) 北京郵電大學(xué)畢業(yè)設(shè)計 16 5 系統(tǒng)的詳細設(shè)計 及編碼實現(xiàn) 客戶端實現(xiàn) 前期的需求 分析和總體設(shè)計,對嵌入式聊天系統(tǒng)的功能需求和模塊設(shè)計做出了 分析。 數(shù)據(jù)庫設(shè)計 本系統(tǒng)中設(shè)計的可抽象出來的數(shù)據(jù)模型是用戶( users) 數(shù)據(jù)模型。 獲得在線用戶類表模塊:用戶登陸成功后,向服務(wù)器端發(fā)送獲得在線用戶列表的請求,查詢數(shù)據(jù)庫后并按一定的協(xié)議向客戶端發(fā)送響應(yīng)信息。 設(shè)置字體模塊:用戶可以設(shè)置個性化的聊天文字,即可以設(shè)置聊天時 使用的字體 顯示的 顏色、大小及字體類型,也可以使字體加粗、傾斜及加下劃線。 如果輸入的賬號 與密碼不匹配 , 則彈出對話框提示輸入有誤 ,并且清空所填寫的 id 號和密碼,需要重新登陸;若 id 號和密碼匹配, 則成功登陸 ,進入聊天界面開始聊天 ,同時所有在線用戶的在線用戶列表均會刷新,可以看到剛登陸成功的用戶信息 。 注冊模塊: 用戶在連接服務(wù)器成功后,新 用戶 可以 注冊 聊天 賬號, 由于該系統(tǒng)中 用戶的 id 號 是 由系統(tǒng)自動分配的 , 因此, 只需填寫用戶相關(guān)個人信息就可實現(xiàn)注冊。在客戶端與服務(wù)器盡心數(shù)據(jù)交換,擁有了在線用戶列表后,就可以選擇 IP 進行客戶端之間的點對點信息交流了。在客戶發(fā)出一個請求之前 ,服務(wù)進程一直處于休眠狀態(tài)。尤其是網(wǎng)絡(luò)技術(shù)的發(fā)展 ,使得當(dāng)前很多系統(tǒng)都采用這種方式進行構(gòu)造 ,其最大的優(yōu)點是將計算機工作任務(wù)分別由客戶端和服務(wù)器端來共同完成 ,這樣有利 于充分合理的利用系統(tǒng)資源。程序要有良好的容錯性,當(dāng)用戶進行非法操作時或者系統(tǒng)本身出問題是要能以最好的方式 退 出程序,避免程序假死現(xiàn)象 。 同時作為嵌入式平臺下的應(yīng)用軟件,要求程序?qū)λ\行至系統(tǒng)的硬件要求盡可能低,運行時內(nèi)存占用盡可能小,響應(yīng)速度要盡可能快。 實現(xiàn)與所有在線用戶的 群聊 。 用戶 登陸 時會 自動 核實用戶名和 密碼是否 匹配 , 不匹配 會產(chǎn)生提示 信息。 運行穩(wěn)定,安全可靠 。 能夠注冊用戶 。 用戶需求 互聯(lián)網(wǎng) 的普及,聊天工具已經(jīng)成為人們?nèi)粘5纳畈豢苫蛉钡囊徊糠?。從而引發(fā)了想怒開發(fā)中的一些列更改。需求分析比較詳細地對用戶的需求進行了分析,更加精準(zhǔn)、細致的回答了目標(biāo)系統(tǒng)必須做什么。該系統(tǒng)采用了經(jīng)典的 Client/Server 模式進行開發(fā),經(jīng)典的 C/S 體系結(jié)構(gòu)具有許多 Browser/Server體系結(jié)構(gòu)沒有的優(yōu)點。 ( 2) 資源分析:建立系統(tǒng)所需資源(人手)是否滿足。分析系統(tǒng)開發(fā)對其他產(chǎn)品或利潤帶來的影響??尚行苑治鲅芯孔罡镜娜蝿?wù)是對以后的行動方針提出建議,如果問題沒有可行的解,應(yīng)建議停止這項開發(fā)工程,以避免時間、資源、人力和金錢的浪費;如果問題值得解,則推薦一個好的解決方案,并制定一個初步的工程計劃。 C++相對眾多的面向?qū)ο蟮恼Z言,具有相當(dāng)高的性能。 北京郵電大學(xué)畢業(yè)設(shè)計 9 (7) C++設(shè)計成無需復(fù)雜的程序設(shè)計環(huán)境。 (3) C++設(shè)計成給程序設(shè)計者更多的選擇,即使可能導(dǎo)致程序設(shè)計者選擇錯誤。 C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計語言。虛函數(shù)( virtual function)、運算符重載( Operator Overloading)、多重繼承( Multiple Inheritance)、模板( Template)、異常( Exception)、 RTTI、命名空間( Name Space)逐漸被加入標(biāo)準(zhǔn)。 C++由美國 ATamp。 C++進一步擴充和完善了 C語言,成為一種面向 對象的程序設(shè)計語言。該服務(wù)并不能保證數(shù)據(jù)傳輸?shù)目煽啃?,?shù)據(jù)有可能在傳輸過程中丟失或出現(xiàn)數(shù)據(jù)重復(fù),且無法保證順序地接收到數(shù)據(jù)。 套接字,是支持 TCP/IP 的網(wǎng)絡(luò)通信的基本操作單元,可以看做是不同主機之間的進程進行雙向通信的端面點,簡單的說就是通信的兩方的一種約定,用套接字中的相關(guān)函數(shù)來完成通信過程 。 客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端的套接字。 假設(shè)第二個程序被加入圖中的網(wǎng)絡(luò)的 Host B 中,那么由 Host A 傳來的信息如何能被正確的傳給程序 B 而不是傳給新加入的程序呢?這是因為每一個基于 TCP/IP 網(wǎng)絡(luò) 通訊 的程序都被賦予了唯一的端口和端口號,端口是一個信息緩沖區(qū),用于保留 Socket中的輸入 /輸出信息,端口號是一個 16 位無符號整數(shù),范圍是 065535,以區(qū)別主機上的每一個程序(端口號就像房屋中的房間號),低于 256 的短口號保留給標(biāo)準(zhǔn)應(yīng)用程序,比如 pop3 的端口號就是 110,每一個套接字都組合進了 IP 地址、端口、端口號,這樣形成的整體就可以區(qū)別每一個套接字。 Socket 可以看成在兩個程序進行 通訊 連接中的一個端點,一個程序?qū)⒁欢涡畔懭?Socket 中,該 Socket 將這段信息發(fā)送給另外一個 Socket 中,使這段信息能傳送到北京郵電大學(xué)畢業(yè)設(shè)計 7 其他程序中。就像電話的插口一樣,沒有它就完全沒辦法通信。 Socket 套接字簡介 應(yīng)用層通過傳輸層進行數(shù)據(jù)通信時, TCP 和 UDP會遇到同時為多個應(yīng)用程序進程提供并發(fā)服務(wù)的問題。 回應(yīng)層 向用戶提供一組常用的應(yīng)用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。 ( 3) 處理路徑、流控、擁塞等問題。數(shù)據(jù)鏈路層是負責(zé)接收 IP 數(shù)據(jù)包并通過網(wǎng)絡(luò)發(fā)送,或者從網(wǎng)絡(luò)上接收物理幀,抽出 IP數(shù)據(jù)包,交給 IP層。 TCP/IP協(xié)議族 對應(yīng) OSI 如表 21 所示。這 7 層是:物理層、數(shù)據(jù)鏈路層 (網(wǎng)絡(luò)接口層 )、網(wǎng)絡(luò)層 (網(wǎng)絡(luò)層 )、傳輸層、會話層、表示層和應(yīng)用層 (應(yīng)用層 )。 但 TCP/IP 協(xié)議不是 TCP 和 IP 這兩個協(xié)議的合稱,而是指因特網(wǎng)整個 TCP/IP 協(xié)議族 。協(xié)議采用了 4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。并能充分利用多核架構(gòu),獲得最佳運行性能,還能根據(jù)可用的處理器內(nèi)核數(shù)自動調(diào)整使用的線程數(shù)。獨立的翻譯文件使得新增支持語北京郵電大學(xué)畢業(yè)設(shè)計 5 言相當(dāng)容易,同時翻譯文件( .ts)為 XML 格式可以直接編輯或使用 Qt Liguist 進行翻譯,可讓無程序開發(fā)能力的翻譯者亦能獨自完成翻譯。確保對象不再使用時都會被刪除。 QWidget 不是一個抽象類型。 Qt 的圖形用戶界面的基礎(chǔ)是 QWidget。這些類型繼承自 QLayout,但 QLayout 非繼承自 QWidget 而是直接源于 QObject。總體來看信號和槽構(gòu)成了一個強有力的組件編程機制。信號 /槽機制完全不依賴于任何一種圖形用戶界面的事件回路。 Qt 的窗口部件有很多預(yù)定義的槽,但是通常的習(xí)慣是你可以加入自己的槽,這樣你就可以處理你所感興趣的信號。回調(diào)有兩個主要缺點 : 首先他們不是類型安全的 , 我們從來都不能確定處理函數(shù)使用了正確的參數(shù)來調(diào)用回調(diào) , 因此容易造成進程崩潰 ; 另一個問題是,回調(diào)這種方式緊緊的綁定了圖形用戶接口的功能元素,因而很難把開發(fā)進行獨立的分類。更一般地,我們希望任何 一類的對象可以和他其他對象進行通訊。 Qt 的主要特點有:面向?qū)ο?,容易擴展,并且允許真正的組件編程; Qt 對各個模塊進行了良好的封裝,使各模塊可重用性較好;優(yōu)良的跨平臺特性,使用 Qt 類編寫的程序可以實現(xiàn) “ 一次編碼,到處編譯 ” , 極大的降低了跨平臺的開發(fā)難度;構(gòu)件支持,對于對象間通信, Qt 沒有采用函數(shù)回 調(diào)的方法,而是采用了一種全新并且可選的被稱北京郵電大學(xué)畢業(yè)設(shè)計 4 為信號與槽的對象間通信機制,通過一個對象信號的發(fā)射,另一個槽函數(shù)的響應(yīng),使各個對象之間的通信安全而且高效。 2020 年奇趣科技被諾基亞公司收購, Qt也因此成為諾基亞旗下的編程語言工具。嵌入式 Linux既繼承了 Inter上 無限 的開放源代碼資源,又具有嵌入式操作系統(tǒng)的特性。嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應(yīng)用軟件的明顯區(qū)分,不要求其功能設(shè)計及實現(xiàn)上過于復(fù)雜,這樣一方面利于控制系統(tǒng)成本, 同時也利于實現(xiàn)系統(tǒng)安全。由于嵌入式系統(tǒng)一般是應(yīng)用于小型電子裝置的,系統(tǒng)資源相對有限,以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。因此可以這樣理解上述三個面向的含義,即嵌入式系統(tǒng)是與應(yīng)用緊密結(jié)合的,它具有很強的專用性,必須結(jié)合實際系統(tǒng)需求進行合理的裁減利用。 第 3章介紹了嵌入式聊天系統(tǒng)的需求分析和可行性分析 第 4章介紹了嵌入式聊天系統(tǒng)的總體設(shè)計。 基于這一目標(biāo)本系統(tǒng)客戶端使用 Qt 信號和槽機制實現(xiàn)了點擊相應(yīng)按鈕就會響應(yīng)相應(yīng)的功能,大大的減少了操作的繁瑣程度和源程序的代碼量 ,減小了系統(tǒng)的體積,使系統(tǒng)顯得不僅簡潔、美觀,而且實用性很強。也許有些已經(jīng)消亡,也許有些還在繼續(xù),不管怎么樣 , Luma 開創(chuàng)了一個時代。 YY 語音是廣州多玩信息技術(shù)有限公司研發(fā)的一款基于Inter 團隊語音通信平臺,功能強大、音質(zhì)清晰、安全穩(wěn)定,其用戶數(shù)量與語音通話質(zhì)量遠遠領(lǐng)先于國內(nèi)其他同類的軟件。 研究現(xiàn)狀 伴隨著網(wǎng)絡(luò)的誕生,各種網(wǎng)絡(luò)聊天工具也曾出不窮,最初的聊天工具只有簡單的文本界面,功能也十分簡單有限,但是隨著各種技術(shù)的不斷發(fā)展,現(xiàn)在的聊天工具已經(jīng)擁有了更多的功能和美觀的圖形化界面,隨著人們對網(wǎng)絡(luò)的依賴,聊天工具已經(jīng)不在是簡單的一個工具而是成為了我們?nèi)粘I畹囊环N生活方式。各種聊天系統(tǒng)更是深刻的影響了人們的聯(lián)系和交流方式,使得人們可以在遠隔千里之遙隨時通訊。嵌入式操作系統(tǒng)市場 也 變得 十分火熱 ,而 以可裁剪的 Linux 系統(tǒng)作為 嵌入式操作系統(tǒng)平臺的領(lǐng)頭羊得到了越來越多的應(yīng)用 和發(fā)展。但是,當(dāng)馬化騰在 2020 年第一次進入“福布斯中國富豪榜”第九十九名,騰訊宣布 同時在線人數(shù)達到 492萬,這個互聯(lián)網(wǎng) 開始為即時通訊沸騰。從技術(shù)上講,主要分為基于服務(wù)器的 IM 工具軟件和基于 P2P技術(shù)的IM 工具軟件。QT 北京郵電大學(xué)畢業(yè)設(shè)計 ii Design and implementation of embedded chat system Abstract In recent years, embedded system application products increasingly rich in our co untry, the market showed a trend of rapid growth, especially in the munica tions, home appliances, electronics, automotive, munications, transportation, finance, working, monitoring, industrial automation and other fields used more widely, the development of embedded system technology and industry has bee used to toru informationization to drive industrialization and industrialization pro motes infor matization policy, to make our products from made in China to created in China into the breach. As puting into the development of work technology and the popularity of PC, the development of local area work (LAN) is also quickly. Many government agencies, enterprises, schools, local area work (LAN) is the first in a unified link together, then respectively access to the INTERNET, so instant munication tools based on local area work (LAN), thus arises at the historic moment the contact provides a new way for people, for the small in the same area of an office building user in even if provides a convenient munication. Therefore, the implementation of embedded chat system development, provide work m unication convenient for users in lan. This system realized the basic function of the chat room. The program is written in the Ubuntu environment and debug client a