【正文】
聊 。 用戶退出后會立即刷新在線用戶列表。并且要求易于維護及擴展。Client/Server 模型最終可歸結為一種“請求 /應答”關系。 功能模塊 設計 根據(jù)上一階段中對聊天系統(tǒng)進行的功能需求分析,可以確定該系統(tǒng)中應包含的所有必需模塊,從而設計出聊天 系統(tǒng)的層次圖 ,其 如圖 42 所示。 群聊模塊:群聊 模塊 實現(xiàn) 的是當某一用戶發(fā)起會話時,所有的用戶均可收到聊天信息,所有在線用戶可以共享聊天信息。 用戶群聊模塊: 接收到客戶端發(fā)送的群聊請求后 ,向所有在線用戶轉發(fā)聊天信息。該系統(tǒng)的邏輯結構如圖 51所示 。 return。 } void MyDialog::logServSuccess() { thism_serverBtnsetEnabled(false)。登錄 模塊的主線程會向服務器端發(fā)送登陸請求,服務器端接收到該請求后作出登陸成功或失敗的響應, 此時次線程會收到該響應信息,若匹配則 會向主線程 發(fā)送信號 logSuccess()否則發(fā)送 logFail()信號 ,其主要代碼如下: while(1) { while(()==false) { ()。 emit logScuccess()。 QString mesg=Login:+nickname+:+passwd。 if(!thism_thread()){ qDebug() write Login: failed!。 emit logFail()。 } qDebug()Thread streamData:streamData。 } 執(zhí)行 客戶端 程序后 顯示的 運行界面 如 圖 52 所示 。 在主 界面 中 ,當點擊登錄 服務器的按鈕 m_serverBtn 后, 會 啟動自定義線程, 在自定義線程中會 設置要連接的服務器端 IP和 Port 為連接服務器做準備 ,當連接服務器成功后 會發(fā)送 connectToHostSuccess 信號,當主線程收到該信號時會 執(zhí)行 相應的槽 函數(shù) logServSuccess()函數(shù) ,該函數(shù)主要 作用 是使按鈕 m_serverBtn 顯示為 “ Log Success” 提示用戶登錄 服務器成功, 且 該按鈕 不可再點擊,其代碼如下 : connect(thism_serverBtn,SIGNAL(clicked()), this,SLOT(connServer()))。 連接服務器模塊主要用到網絡編程 和多線程編程 的 相關 知識 。 數(shù)據(jù)庫設計 本系統(tǒng)中設計的可抽象出來的數(shù)據(jù)模型是用戶( users) 數(shù)據(jù)模型。 設置字體模塊:用戶可以設置個性化的聊天文字,即可以設置聊天時 使用的字體 顯示的 顏色、大小及字體類型,也可以使字體加粗、傾斜及加下劃線。 注冊模塊: 用戶在連接服務器成功后,新 用戶 可以 注冊 聊天 賬號, 由于該系統(tǒng)中 用戶的 id 號 是 由系統(tǒng)自動分配的 , 因此, 只需填寫用戶相關個人信息就可實現(xiàn)注冊。在客戶發(fā)出一個請求之前 ,服務進程一直處于休眠狀態(tài)。程序要有良好的容錯性,當用戶進行非法操作時或者系統(tǒng)本身出問題是要能以最好的方式 退 出程序,避免程序假死現(xiàn)象 。 實現(xiàn)與所有在線用戶的 群聊 。 運行穩(wěn)定,安全可靠 。 用戶需求 互聯(lián)網 的普及,聊天工具已經成為人們日常的生活不可或缺的一部分 。需求分析比較詳細地對用戶的需求進行了分析,更加精準、細致的回答了目標系統(tǒng)必須做什么。 ( 2) 資源分析:建立系統(tǒng)所需資源(人手)是否滿足??尚行苑治鲅芯孔罡镜娜蝿帐菍σ院蟮男袆臃结樚岢鼋ㄗh,如果問題沒有可行的解,應建議停止這項開發(fā)工程,以避免時間、資源、人力和金錢的浪費;如果問題值得解,則推薦一個好的解決方案,并制定一個初步的工程計劃。 北京郵電大學畢業(yè)設計 9 (7) C++設計成無需復雜的程序設計環(huán)境。 C++是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設計語言。 C++由美國 ATamp。該服務并不能保證數(shù)據(jù)傳輸?shù)目煽啃?,?shù)據(jù)有可能在傳輸過程中丟失或出現(xiàn)數(shù)據(jù)重復,且無法保證順序地接收到數(shù)據(jù)。 客戶端請求:是指由客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。 Socket 可以看成在兩個程序進行 通訊 連接中的一個端點,一個程序將一段信息寫入 Socket 中,該 Socket 將這段信息發(fā)送給另外一個 Socket 中,使這段信息能傳送到北京郵電大學畢業(yè)設計 7 其他程序中。 Socket 套接字簡介 應用層通過傳輸層進行數(shù)據(jù)通信時, TCP 和 UDP會遇到同時為多個應用程序進程提供并發(fā)服務的問題。 ( 3) 處理路徑、流控、擁塞等問題。 TCP/IP協(xié)議族 對應 OSI 如表 21 所示。 但 TCP/IP 協(xié)議不是 TCP 和 IP 這兩個協(xié)議的合稱,而是指因特網整個 TCP/IP 協(xié)議族 。并能充分利用多核架構,獲得最佳運行性能,還能根據(jù)可用的處理器內核數(shù)自動調整使用的線程數(shù)。確保對象不再使用時都會被刪除。 Qt 的圖形用戶界面的基礎是 QWidget??傮w來看信號和槽構成了一個強有力的組件編程機制。 Qt 的窗口部件有很多預定義的槽,但是通常的習慣是你可以加入自己的槽,這樣你就可以處理你所感興趣的信號。更一般地,我們希望任何 一類的對象可以和他其他對象進行通訊。 2020 年奇趣科技被諾基亞公司收購, Qt也因此成為諾基亞旗下的編程語言工具。嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應用軟件的明顯區(qū)分,不要求其功能設計及實現(xiàn)上過于復雜,這樣一方面利于控制系統(tǒng)成本, 同時也利于實現(xiàn)系統(tǒng)安全。因此可以這樣理解上述三個面向的含義,即嵌入式系統(tǒng)是與應用緊密結合的,它具有很強的專用性,必須結合實際系統(tǒng)需求進行合理的裁減利用。 基于這一目標本系統(tǒng)客戶端使用 Qt 信號和槽機制實現(xiàn)了點擊相應按鈕就會響應相應的功能,大大的減少了操作的繁瑣程度和源程序的代碼量 ,減小了系統(tǒng)的體積,使系統(tǒng)顯得不僅簡潔、美觀,而且實用性很強。 YY 語音是廣州多玩信息技術有限公司研發(fā)的一款基于Inter 團隊語音通信平臺,功能強大、音質清晰、安全穩(wěn)定,其用戶數(shù)量與語音通話質量遠遠領先于國內其他同類的軟件。各種聊天系統(tǒng)更是深刻的影響了人們的聯(lián)系和交流方式,使得人們可以在遠隔千里之遙隨時通訊。但是,當馬化騰在 2020 年第一次進入“福布斯中國富豪榜”第九十九名,騰訊宣布 同時在線人數(shù)達到 492萬,這個互聯(lián)網 開始為即時通訊沸騰。QT 北京郵電大學畢業(yè)設計 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 and server program, realized the client and the server connection and munication. Server application is through the vi editor, use C, C + + programming language and use the related knowledge of MySql datab ase. The client program is implemented using Qt graphical interface and the mu nication with the server. Next, this article will explain in detail the implementation of the key code of the chat system and function, including how to establish a connection, if you register and login, how to do private and group chat, and so on. Key words: embedded。 本系統(tǒng)實現(xiàn)了聊天室的基本功能。 北京郵電大學畢業(yè)設計 第 2 頁 畢業(yè)設計(論文)主要內容: 1. 了解開發(fā)嵌入式聊天系統(tǒng)的背景; 2. 綜述嵌入式聊天系統(tǒng)開發(fā)平臺及相關應用技術 3. 對嵌入式聊天系統(tǒng)進行可行性分析; 4. 對嵌入式聊天系統(tǒng)進行需求分析 5. 分析及實現(xiàn)聊天系統(tǒng)的主要功能,主要包括:驗證用戶名與密碼是否匹配、登陸聊天系統(tǒng)、新用戶注冊、獲得在線用戶列表、群聊、私聊、設置字體顏色、設置字體大小及退出; 6. 設計實現(xiàn)嵌入式聊天系統(tǒng) ; 7. 對聊天系統(tǒng)實現(xiàn)測試,并編寫測試文檔; 8.綜述設計的聊天系統(tǒng)設計的意義及其不足之處; 學生應交出的設計文件(論文): 1.內容完整、 層次清晰 、敘述流暢、排版規(guī)范的畢業(yè)設計論文; 2.包括 畢業(yè)設計論文、源程序等內容在內的畢業(yè)設計電子文檔及其它相關材料。 客戶端程序是 用 Qt 實現(xiàn)圖形化界面和與服務器的通信 。 QT北京郵電大學畢業(yè)設計 目 錄 摘 要 ................................................................... i Abstract ................................................................ ii 1 緒論 .................................................................. 1 研究背景及意義 ..................................................... 1 研究現(xiàn)狀 ........................................................... 1 研究內容 ....................