亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Linux系統(tǒng)下基于QT的局域網(wǎng)聊天系統(tǒng)

        2012-12-31 00:00:00王蘇敏陳淦廖晶晶
        計算機光盤軟件與應(yīng)用 2012年22期

        摘要:主要介紹在Linux系統(tǒng)下實現(xiàn)一個局域網(wǎng)的聊天軟件。系統(tǒng)采用C語音編寫,QT界面開發(fā)工具開發(fā),適用于不同架構(gòu)的CPU;在對比分析了TCP協(xié)議和UDP協(xié)議后,選擇TCP方式進行連接,實現(xiàn)信息的傳輸。

        關(guān)鍵詞:QT;傳輸控制協(xié)議;用戶數(shù)據(jù)報協(xié)議

        中圖分類號:TP311.1 文獻標識碼:A 文章編號:1007-9599 (2012) 22-0000-02

        Linux操作系統(tǒng)具有良好的可移植性,豐富的網(wǎng)絡(luò)功能,多用戶多任務(wù)等優(yōu)點,運用領(lǐng)域非常廣泛,主要有通信、信息、工業(yè)控制等。在這個信息化的時代,人與人的溝通越來越注重時效性,本文所設(shè)計的聊天系統(tǒng)能使在同一局域網(wǎng)下的各用戶端實現(xiàn)實時通信,由于越來越多的企業(yè)在其內(nèi)部使用局域網(wǎng)來進行工作,使得系統(tǒng)具有一定的工業(yè)價值和現(xiàn)實意義。本文在QT/Embedded的基礎(chǔ)上,開發(fā)了面向應(yīng)用層的局域網(wǎng)聊天系統(tǒng),可實現(xiàn)登陸,點對多廣播式群聊,點對點聊天等功能。

        1 QT技術(shù)

        QT是Trolltech公司的一個標志性產(chǎn)品。QT是一個支持多操作系統(tǒng)平臺的應(yīng)用程序開發(fā)框架,它的開發(fā)語言是C++。[1]

        本文是利用QT的信號與槽機制設(shè)計與實現(xiàn)的。信號/槽機制是一種全新且可選的應(yīng)用于對象間的通信機制,不同于以往的回調(diào)函數(shù)對消息處理函數(shù)有很強的依賴性并且不是類型安全的。信號/槽機制是QT的核心機制,可以使用任意數(shù)量、任何類型的參數(shù)應(yīng)用于對象之間的通信。信號(signal)在特定事件發(fā)生時就會發(fā)出,槽(slot)是普通的成員函數(shù),用connect()函數(shù)把插槽和信號連接起來。[2]每個信號和槽都對應(yīng)一個簽名當發(fā)出一個信號,發(fā)射信號的對象不需要知道具體哪個槽接收信號,系統(tǒng)將會立即找到與該信號簽名相匹配的槽簽名,并將信號和槽相連接。

        2 通信協(xié)議

        TCP/IP協(xié)議將經(jīng)典的OSI7協(xié)議模型簡化為4層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層和網(wǎng)絡(luò)接口層。[3]本系統(tǒng)主要實現(xiàn)的是數(shù)據(jù)的傳輸,所以主要運用傳輸層的TCP協(xié)議和UDP協(xié)議。

        2.1 TCP協(xié)議

        TCP協(xié)議即傳輸控制協(xié)議,是面向連接的傳輸層通信協(xié)議,提供端到端,全雙工通信。TCP在發(fā)送數(shù)據(jù)前通過三次握手初始化,建立虛連接。TCP協(xié)議在傳輸數(shù)據(jù)時在每一個被傳送的數(shù)據(jù)上都加上序號以保證接收端按順序接收,另外接收端每收到一個數(shù)據(jù),就像發(fā)送端返回一個與序號對應(yīng)的確認號,這就保證了通信的可靠性。

        2.2 UDP協(xié)議

        UDP協(xié)議即用戶數(shù)據(jù)報協(xié)議,是傳輸層另一個重要的傳輸協(xié)議,主要作用就是將網(wǎng)絡(luò)數(shù)據(jù)流量壓縮成數(shù)據(jù)報的形式。UDP協(xié)議是一個無連接的協(xié)議,發(fā)送端一次發(fā)送一個應(yīng)用層交來的報文,不管報文的長度;接收端除去報文首部后一次性將IP層交來的報文交付給應(yīng)用層。在數(shù)據(jù)傳輸?shù)倪^程中,如果出現(xiàn)數(shù)據(jù)包丟失,UDP協(xié)議不會做出任何檢測或提示。

        由于不同協(xié)議的地址格式不同、端口分配互相獨立、工作方式不同,所以網(wǎng)絡(luò)進程通信時,必須在眾多的協(xié)議中作出選擇。[4]對比以上TCP協(xié)議與UDP協(xié)議的特點,TCP協(xié)議具有高可靠性等特點,本文選擇了TCP協(xié)議傳輸聊天信息。

        2.3 socket

        在進行數(shù)據(jù)傳輸時,會出現(xiàn)同時為多個應(yīng)用程序進程提供并發(fā)服務(wù)的情況。Socket就是系統(tǒng)提供的用于區(qū)別不同應(yīng)用程序進程和連接的通信機制。在Linux系統(tǒng)中的網(wǎng)絡(luò)編程就是通過socket接口來進行的,通過它能實現(xiàn)進程之間的數(shù)據(jù)通信。

        3 系統(tǒng)設(shè)計與實現(xiàn)

        3.1 連接模塊

        不同客戶端上的用戶想要進行通信,必須先通過IP和端口號連接已經(jīng)啟動的服務(wù)器。本文采用客戶機/服務(wù)器模式,再分別屬于不同部門的不同平臺的計算機上分別開發(fā)負責偵聽的socket服務(wù)器和負責連接的socket客戶端。[5]在客戶端創(chuàng)建一個socket套接字用來和服務(wù)器進行通信,本文選用QT中QAbstractSocket類的connectToHost函數(shù)來實現(xiàn)此功能。

        3.2 用戶注冊模塊

        用戶在注冊賬號時通常有兩種可能:注冊成功或者賬號已存在,注冊失敗。在客戶端,填入所需注冊的賬號和密碼,點擊“注冊”鍵后,產(chǎn)生一個信號與槽機制,在槽函數(shù)中通過clicked()信號將賬號和密碼發(fā)送給服務(wù)器。在服務(wù)器端,將客戶端發(fā)送來的數(shù)據(jù)進行語法分析,打開用戶管理文件usr_manage.dbo,在該文件中查找賬號是否被注冊過并返回相應(yīng)函數(shù)給客戶端。

        3.3 用戶登錄模塊

        用戶登錄服務(wù)器時也會有兩種可能:登陸成功或者因輸入賬號已登錄,密碼錯誤,賬號不存在使得登錄失敗。在客戶端,點擊“登錄”按鍵后,已輸入的賬號和密碼會通過denglu()函數(shù)發(fā)送給服務(wù)器。在服務(wù)器端,接收到客戶端發(fā)來的數(shù)據(jù)后進入登錄函數(shù)uselogin()函數(shù),打開用戶管理文件usr_manage.dbo,在該文件中判斷賬號和密碼是否正確。

        3.4 聊天模塊

        在聊天模塊中分群聊和私聊兩種模式。

        群聊需選擇“群聊”按鍵進入槽處理函數(shù)qunliao(),客戶端就將用戶在聊天框輸入的內(nèi)容發(fā)送給服務(wù)器。服務(wù)器接收到的數(shù)據(jù)后判斷是群聊還是私聊,再將數(shù)據(jù)轉(zhuǎn)發(fā)給所有在線用戶。

        用戶在點擊“私聊”按鍵前先選擇私聊對象,進入槽處理函數(shù)opensiliao()設(shè)置參數(shù),然后進入點擊聊天對象函數(shù),將已點擊了對象的用戶名記錄下來,最后將這些數(shù)據(jù)發(fā)給服務(wù)器端。服務(wù)器端接到客戶端的數(shù)據(jù)后,進入語法分析程序判斷是客戶端要進行群聊還是私聊,從而進入私聊處理程序,將私聊對象的名字提出來,把聊天的內(nèi)容發(fā)給了他。

        4 總結(jié)

        本文通過分析網(wǎng)絡(luò)聊天系統(tǒng),講述了QT、TCP/IP、UDP、Socket網(wǎng)絡(luò)套接字等技術(shù)的工作原理與應(yīng)用,闡述了局域網(wǎng)聊天系統(tǒng)的開發(fā)流程和模塊設(shè)計。本系統(tǒng)界面美觀友好,易操作,實現(xiàn)了與用戶的良好交互性,不僅可以實現(xiàn)本地局域網(wǎng)聊天還可以運用到互聯(lián)網(wǎng)上。

        參考文獻:

        [1]謝川.嵌入式Liunx開發(fā)基礎(chǔ)[M].北京:中國鐵道出版社,2011.

        [2]陳周國,王勝銀,付國晴,鄧赟.基于Linux QT技術(shù)的遠程監(jiān)控GUI設(shè)計[J].通信技術(shù),2009,42(12):234-236.

        [3]趙祖龍.基于Qt/Embedded的嵌入式跨平臺聊天系統(tǒng)設(shè)計[J].信息技術(shù),2010(12):144-147.

        [4]何進,謝松巍.基于Socket的TCP/IP網(wǎng)絡(luò)通訊模式研究[J].計算機應(yīng)用研究,2001,18(8).

        [5]李揚,耿昌宇,張麗芬.基于socket通訊模式下的跨平臺數(shù)據(jù)平臺[J].北京理工大學(xué)學(xué)報,2002,22(1):81-84.

        色婷婷色丁香久久婷婷| 日本不卡一区二区三区久久精品| 国产一区二区三区免费视| 视频在线观看国产自拍| 亚洲中文字幕无码av永久| 天堂√在线中文官网在线| 国产精品久久久久久52avav| 亚洲av色福利天堂| 亚洲免费av电影一区二区三区| 麻豆亚洲av永久无码精品久久| 亚洲人成网站77777在线观看| 妺妺窝人体色www聚色窝韩国| 亚洲人成在线播放a偷伦| 色综合久久五十路人妻| 五月婷婷六月丁香久久综合| 午夜精品久久久久久久| gv天堂gv无码男同在线观看| 藏春阁福利视频| 国产精品久久久久尤物| 亚洲成人免费久久av| 加勒比精品视频在线播放| 免费网站内射红桃视频| 天堂aⅴ无码一区二区三区 | 色先锋资源久久综合5566| 另类专区欧美在线亚洲免费| 久久HEZYO色综合| 在线女同免费观看网站| 久久精品熟女亚洲av麻| 乱色精品无码一区二区国产盗| 日韩在线一区二区三区免费视频| 国产欧美日韩午夜在线观看| 中文人妻av大区中文不卡| 精品国产a毛片久久久av| 蜜桃视频网站在线观看一区| 丰满少妇高潮惨叫久久久一| 欧美性xxxx狂欢老少配| 色优网久久国产精品| 国产三级国产精品国产专区50| 成人午夜性a级毛片免费| 99久久久无码国产精品9| 免费观看成人稀缺视频在线播放 |