劉波


摘要:本文在闡述即時通信技術支撐的基礎上,分析即時通信設計思路,并就其數據庫、數據格式、服務器、客戶端等要素展開系統(tǒng)設計。期望能實現Linux與即時通信的深度融合,繼而最大限度發(fā)揮Linux系統(tǒng)的功能,促進即時通信的進一步發(fā)展。
關鍵詞:Linux系統(tǒng);即時通信;C/S架構
中圖分類號: TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)04-0048-02
作為一種類Unix操作系統(tǒng),Linux系統(tǒng)在現代通信工程中的應用不斷深入,如在個人計算機、服務器或者嵌入式終端設備中均有Linux系統(tǒng)應用的痕跡。從應用效果來看,該系統(tǒng)的開放性較強,其能實現多用戶、多任務的同時操作,可靠性較為突出。但該系統(tǒng)應用仍存在一定缺陷,在通信軟件應用中,國內外較多通信軟件的功能僅局限于Linux版本,這使得通信軟件不具備開源性,同時受通信協(xié)議差異性的影響,各軟件之間不能互相通信。新時期,要實現即時通信技術的進一步發(fā)展,有必要進行Linux通信系統(tǒng)的開源設計。
1 即時通信的技術支撐
1.1 通信傳輸控制協(xié)議
即時通信的實現離不開必要的傳輸控制協(xié)議。就傳輸控制協(xié)議而言,其本身具有面向連接的特點,而且可靠性較為突出。在即時通信過程中,傳輸控制協(xié)議對于數據的傳輸具有深刻影響。實際傳輸中,該協(xié)議首先會進行三次握手,由此實現服務器與客戶端之間的系統(tǒng)連接。隨后在經過四次揮手操作后,實現服務器與客戶端之間的斷連控制。需注意的是,在數據傳輸中,一旦數據驗證結果與原數據存在差異,則需要進行數據的再次傳輸,這樣能保證數據的準確性。現階段,在容量數據傳輸中,傳輸控制協(xié)議的應用能有效確保數據的可靠性;所不足之處在于該協(xié)議的應用會增加數據傳輸開銷,整體傳輸速度較慢。
1.2 C/S架構
基于傳輸控制協(xié)議建設C/S架構,能為Linux即使通信的實現創(chuàng)造有利條件(見圖1)。就C/S架構而言,其本身既有非對稱性的特點,該架構將數據庫服務作用技術核心,隨后通過網絡連接,使得多個終端構成一個整體,最后分職能的進行客戶端和服務器的管理應用。就服務器而言,其實響應客戶端請求并提供相應服務的基礎載體,而客戶端由具體的YONG 戶操作,其會根據自己的實際所需要,向服務器發(fā)送不同的請求和指令。通信過程中,服務器起到中轉兩個客戶信息數據的在作用。
2 基于Linux的即時通信系統(tǒng)設計思路
現階段,市場上即時通信一般按照圖2的模式進行設計。當設計人員打開應用程序后,主界面會顯示三個基本功能區(qū),該功能區(qū)分別為:注冊賬戶、登錄和退出。就注冊界面而言,其提供注冊成功、注冊失敗兩種提示服務;而在登錄界面管理中,登錄成功需要用戶名、密碼的完全正確和匹配。用戶登錄成功后,用戶可進行功能界面的系統(tǒng)操作,需在會的是,用戶身份不同,其功能界面也有一定差異,作為系統(tǒng)的管理者,管理員用戶功能界面,界面既有獨享功能。
3 基于Linux的即時通信系統(tǒng)設計內容
3.1 數據庫
數據庫在即時通信數據信息管理中發(fā)揮著重要作用,其不僅能用來存放注冊用戶的用戶名和密碼,而且能對聊天信息進行備份記錄。即時通信系統(tǒng)數據庫設計中,設計人員需要在創(chuàng)建表格、添加數據的基礎上,做好數據更新和數據查詢功能的有效設計;通常,該設計過程通過SQLite的編程接口函數來實現,并且在數據庫設計中,需保證打開函數和關閉函數處于成對控制狀態(tài),這樣能避免數據庫未關閉對其他程序的影響,同時其能有效避免多程序同時應用導致數據庫系統(tǒng)崩潰問題的發(fā)生。
基于Linux開展通信系統(tǒng)數據庫設計中,將數據庫表格名稱命名為user,并將數據調整為TEXT類型,隨后按照四個4個字段進行數據存儲,1~4字段分別用來存放用戶名、密碼、接收方用戶名和聊天內容。
3.2 數據格式
數據格式直接影響著用戶端與服務器之間數據傳輸的功能實現程度,為確保即時通信功能的實現,設計人員多會通過協(xié)議的方式對數據格式進行規(guī)范,以此來確保模塊之間數據通信的實現。本設計中,針對Linux系統(tǒng)下的數據格式管理,側重以下設計要點管理:其一,將命令號存放在action當中,同時要求實現命令、質量的對應和差異化管理;其二,確定用戶名存放組為char類型,并且用戶名的長度不得超過30;其三,在接收方管理中,對接收方用戶名、密碼、消息內容的格式進行系統(tǒng)管理,確保其滿足實際的格式應用需要;其四,采用二維數組的方式存放在線用戶,并通過最后三個參數對信息行數、列數、具體信息進行記錄。需注意的是,在具體信息記錄中,要求后期操作者最多可實現100條消息的記錄。
經此設計中,客戶端、服務器在通信傳輸中均是以結構體的形式來傳輸信息,同時基于這些結構體信息,客戶端、服務端又可在相應指令的控制下,結合功能需要獲取數據,確保了通信的準確實現。
3.3 服務器
Linux系統(tǒng)即時通信中,借助于socket編程接口可實現整個網絡編程的規(guī)范編寫。新系統(tǒng)采用了基于TCP的流式套接字類型,在IP地質和端口號存儲中,系統(tǒng)使用sockaddr-in結構進行存儲;同時在服務器設計中考慮不同服務終端存儲數據的模式差異,做好大端、小端模式的系統(tǒng)劃分;此外,設計人員加強地址之間的有效轉化,這有效地確保了通信系統(tǒng)服務功能的實現。
在服務器端搭流程管理中,首先采用socket函數創(chuàng)建套接字,其次,在bind函數的支撐下,對套接字綁定相應的IP地質和端口號,隨后分別采用listen函數、accept函數監(jiān)聽客戶端請求,并實現服務器與客戶端的有效連接。最后,服務端與客戶端的信息手法通過read/write指令來實現。本次Linux即時通信系統(tǒng)服務器設計中,針對服務器流程的搭建和管理,注重兩種套接字的系統(tǒng)管理:其一,分別采用socket函數、listen函數來新建套接字和監(jiān)聽套接字,其二,在專門通信套接字的作用下,完成客戶端之間的銜接。需注意的是,針對listen函數的應用,應創(chuàng)建多個線程,然后通過主線程監(jiān)測客戶端的請求,然后通過新建線程來專門處理客戶端的通信。而就accept函數而言,其本身是一個阻塞型函數,即當客戶端沒有請求連接時,該函數一追會處于阻塞狀態(tài);而當客戶端與服務器連通后,系統(tǒng)會在receive-msg函數的作用下,執(zhí)行通信線程,這樣能確保不同功能的先,并將相應的信息反饋給目標客戶端。
后期使用中,基于Linux系統(tǒng)的即時通信服務端按照注冊、登錄、群聊、私聊、修改密碼、查看連天記錄、踢人、禁言與解禁的流程進行管理。具體管理中,本系統(tǒng)還具有以下功能:其一,在注冊界面,針對新注冊用戶,對用戶名進行檢測,將已注冊用戶名按照錯誤號實施返回處理;其二,在群聊過程中,先將用戶需要發(fā)送的信息保存到數據庫的聊天字段,隨后轉移發(fā)送給所有在線用戶;其三,在向私聊用戶發(fā)送信息時,按照檢測用戶是否在線、向在線用戶保存、發(fā)送信息的模式進行管理。其四,用戶名密碼修改按照update命令進行,并且在password字段密碼更改中,其對會對新密碼的格式、安全程度進行檢測,確保用戶信息安全。其五,踢人功能實現中,先將其通信套接字置零,隨后移出在線列表。
3.4 客戶端
客戶端的應用應有助于用戶操作的便捷性,進而提升通信的效率性、穩(wěn)定性。在C/S框架下,基于Linux系統(tǒng)的即時通信實現按照開始、用socket函數創(chuàng)建套接字、用accept函數連接,設置服務器IP地址可端口號、用read/write函數進行客戶端信息收發(fā)的流程進行建設。
客戶端開始運行后,其首先會顯示主頁面,在主頁面上,用戶會按照注冊、登錄、退出的指令進行相應操作。指令不同,其對應的執(zhí)行函數也要一定差異性。當用戶實現準確登錄后,在多線程技術的支撐下,整個系統(tǒng)可以實施讀寫分離操作。該傳輸控制模式下,主線程、新建線程的工作路徑具有較大區(qū)別。就主線程而依然,其會在分析用戶身份的基礎上,對接相應的功能界面,隨后,在用戶輸入指令的作用下,整個系統(tǒng)會開始想服務器發(fā)送消息。而就新建線程而言,其能在接收服務器發(fā)送消息后,對消息的結構體進行解析,繼而獲取相應數據,完成指令信息對應功能的顯示。
在客戶執(zhí)行流程管理中,本次設計關注向服務器發(fā)送消息、從服務器讀取信息的優(yōu)化。一方面,在向服務器發(fā)送消息時,對用戶的身份進行分析,然后系統(tǒng)顯示對應的功能。如相比于普通用戶,管理員用戶具有踢人、新增用戶、禁言、解禁等諸多功能。另一方面,從服務器讀取信息中,強化信息結構體解析和顯示管理,確保用戶接收信息的效率性、準確性。
完成Linux系統(tǒng)即時通信系統(tǒng)設計后,在Redhat操作系統(tǒng)環(huán)境下進行功能測試,新設計系統(tǒng)具備開源能力,滿足即時通信控制需要。
4 結論
對Linux系統(tǒng)進行設計優(yōu)化,能進一步提升即時通信的效率與質量。本次設計中,在C語言的支撐下,基于Linux平臺開展即時通信系統(tǒng)設計,新設計系統(tǒng)采用TCP協(xié)議對C/S架構進行管理,同時建立SQLite數據庫,進行用戶信息存儲,最后通過Redhat操作系統(tǒng)環(huán)境進行新系統(tǒng)測試。測試結果表明,新設計系統(tǒng)不僅滿足了即時通信注冊、登錄到查看聊天記錄的所有基本功能,而且為管理員新增用戶獨享 踢人、禁言和解禁等諸多功能,其有效地實現了即時通信中Linux系統(tǒng)的開源管理,這滿足了即時通信需要,提升了系統(tǒng)運行的穩(wěn)定性、實用性。
參考文獻:
[1] 侯姍.基于嵌入式Linux的多關節(jié)機器人通信系統(tǒng)設計[J].通信電源技術,2020,196(4):60-61.
【通聯(lián)編輯:李雅琪】