基于linux平臺的通信軟件的設(shè)計與實現(xiàn)

基于linux平臺的通信軟件的設(shè)計與實現(xiàn)

ID:25361949

大小:55.00 KB

頁數(shù):7頁

時間:2018-11-19

基于linux平臺的通信軟件的設(shè)計與實現(xiàn)_第1頁
基于linux平臺的通信軟件的設(shè)計與實現(xiàn)_第2頁
基于linux平臺的通信軟件的設(shè)計與實現(xiàn)_第3頁
基于linux平臺的通信軟件的設(shè)計與實現(xiàn)_第4頁
基于linux平臺的通信軟件的設(shè)計與實現(xiàn)_第5頁
資源描述:

《基于linux平臺的通信軟件的設(shè)計與實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、基于Linux平臺的通信軟件的設(shè)計與實現(xiàn)雷文禮,任新成,高瑛(延安大學(xué)物理與電子信息學(xué)院,陜西延安716000)摘要:隨著智能通信設(shè)備性能的日益提升,即時通信系統(tǒng)移植的需求也越來越高,作為一種基于IP協(xié)議的應(yīng)用程序,即時通信系統(tǒng)能夠使不同智能設(shè)備的用戶進行通信。Linux作為一種開源的操作系統(tǒng)平臺,在開發(fā)即時通信系統(tǒng)方面具有很好的應(yīng)用前景。基于Linux平臺采用Socket網(wǎng)絡(luò)編程設(shè)計并實現(xiàn)了即時網(wǎng)絡(luò)通信系統(tǒng),服務(wù)器經(jīng)過測試后,能夠穩(wěn)定運行,客戶端圖形界面效果良好。該系統(tǒng)的設(shè)計為后續(xù)基于Linux平臺的軟件開發(fā)應(yīng)用提供了參考和借鑒。.jy

2、qk_time()該函數(shù)讀取當前系統(tǒng)時間并隨消息一同發(fā)出。2.2.2服務(wù)器消息處理模塊的設(shè)計與實現(xiàn)服務(wù)器的消息處理模塊主要由7部分組成,分別如下:用戶登錄消息處理模塊:當服務(wù)器接收到用戶消息并判斷是登錄消息后,服務(wù)器將根據(jù)用戶發(fā)送過來的用戶名和密碼到users.db表中進行匹配,如果匹配成功則把該用戶加入到online.db表中,設(shè)置用戶在線狀態(tài)為真的,同時調(diào)用發(fā)送在線列表函數(shù),向添加該用戶為好友的用戶發(fā)送該用戶的上線信息。如果匹配不成功,服務(wù)器將發(fā)送登錄失敗消息給客戶端,要求用戶重新登錄。添加好友信息處理模塊:當服務(wù)器收到用戶請求加好友

3、的消息時,服務(wù)器首先在users.db中查找要被添加的用戶是否存在,如果該用戶存在則把該用戶的信息存儲到當前用戶的好友文件中,同時在被添加好友用戶的_as.db表中保存當前用戶的信息。刪除好友信息處理模塊:當服務(wù)器接收到用戶的該消息請求時,服務(wù)器根據(jù)用戶提供的好友用戶名刪除被指定的好友,同時將用戶表進行更新,在被刪除的好友的被添加好友表_as.db中將當前用戶刪除。用戶聊天信息轉(zhuǎn)發(fā)的處理模塊:當服務(wù)器判斷用戶所請求的信息為聊天消息后,服務(wù)器根據(jù)用戶所指定的聊天對象到online.db表中查找被指定用戶是否在線,如果被指定用戶在線則提取他的

4、套接字地址結(jié)構(gòu),并按照該套接字信息將消息轉(zhuǎn)發(fā)。如果用戶不在線則將消息標識設(shè)定為離線消息,并將該消息寫入被指定用戶的離線消息文件中。用戶下線消息處理模塊:當服務(wù)器判斷用戶所請求的信息為下線消息后,服務(wù)器將把用戶從online.db中刪除,設(shè)置該用戶狀態(tài)為下線,同時調(diào)用發(fā)送狀態(tài)函數(shù),將標志位設(shè)置為離線向該用戶的發(fā)送。離線消息處理模塊:當服務(wù)器判斷用戶所請求的信息為讀取離線消息后,服務(wù)器讀用戶的離線消息文件,如果該文件中有被標識為新的離線消息時,服務(wù)器將把該消息提取出來發(fā)送給用戶,同時把該消息標識為已讀。刪除離線消息處理模塊:如果客戶做出了刪除

5、離線消息的動作,那么服務(wù)器端將會根據(jù)用戶的發(fā)送信息把該用戶的離線消息文件中的離線消息刪除。2.3客戶端設(shè)計軟件的客戶端采用圖形化用戶接口方式,Qt圖形界面的主要特點就是事件觸發(fā),當某一窗體消息需要被處理時,處理引擎就會按照設(shè)計做出處理,圖3描述了客戶端的操作處理流程??蛻舳诉\行后,首先登錄服務(wù)器,如果登陸成功,服務(wù)器將在線的用戶信息發(fā)送給客戶端,此時客戶端即可查看到用戶信息。當用戶會話時,聊天信息窗體負責發(fā)送和接收用戶的聊天信息;用戶離線時,該信息通過服務(wù)器轉(zhuǎn)發(fā)方式發(fā)送給離線用戶,當對方上線時便可查看該離線消息。2.3.1客戶端主要窗口設(shè)

6、計本文設(shè)計的客戶端提供圖形用戶界面,程序運行后,在主窗體上點擊相應(yīng)狀態(tài)的按鈕就會產(chǎn)生一個相應(yīng)的操作,包括主窗體,登錄窗口,添加用戶窗口,系統(tǒng)消息窗口,離線消息窗口,聊天窗口。主窗體:該窗體中包含了所有的用戶操作按鈕和好友列表,用戶的操作都在這個窗體中完成,如圖4所示。當用戶的操作成功或者失敗時,系統(tǒng)會顯示一條消息給用戶,以便提示用戶操作是否成功。在相關(guān)的函數(shù)內(nèi)將該窗口的激活屬性打開,消息窗口便會自動彈出并顯示消息,如圖5所示。當用戶點擊主窗口中的Offline按鈕時,該窗體被激活。離線消息可以查看當用戶不在線時,有哪些用戶向該用戶發(fā)送了離

7、線消息,如圖6所示。聊天窗口:當用戶點擊好友時,聊天窗口被激活。如圖7所示,紅色顯示的是用戶自身,藍色為。2.3.2客戶端功能模塊的設(shè)計用戶認證模塊:主要用到的函數(shù)為:connec(t),send(),pthread_create()。當用戶啟動程序后,首先需要用戶登陸到服務(wù)器才能進一步對軟件進行操作,這一部分即為用戶認證模塊。界面顯示模塊:當用戶成功登陸后,在列表中將會顯示用戶的信息,在離線消息窗口中會顯示接收到的離線消息,這兩個視圖均是用列表視圖來實現(xiàn)的。消息處理模塊:當客戶端和服務(wù)器建立連接后,客戶端會創(chuàng)建一個專門的線程維護客戶端和

8、服務(wù)器之間的連接,該線程調(diào)用函數(shù)根據(jù)從服務(wù)器接收到的消息類型選擇消息處理模塊。更新列表信息:當判斷接收到的消息為GIF_ADDRLIST_MSG時,程序?qū)σ晥D進行刷新以便及時地顯示的當前狀態(tài)

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。