亚洲免费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永久无码国产精品久久| 精品人妻码一区二区三区红楼视频| 日本高清乱码中文字幕| 久久人妻少妇嫩草av无码专区| 久久精品国产亚洲av成人| 午夜国产精品视频免费看电影| 人妻av在线一区二区三区| 精品国产品香蕉在线| 国产精品美女久久久久 | 免费无码又爽又刺激又高潮的视频 | 脱了老师内裤猛烈进入| 国产精品久久久久av福利动漫| 91亚洲国产三上悠亚在线播放| 亚洲av大片在线免费观看| 新婚人妻不戴套国产精品| 无码国产午夜福利片在线观看| 中文字幕亚洲人妻系列| 亚洲av综合日韩精品久久| 国产精品日本一区二区在线播放| 亚洲av中文无码字幕色三 | 日本高清人妻一区二区| 精品国产午夜肉伦伦影院| 无码精品日韩中文字幕| 丝袜欧美视频首页在线| 精品中文字幕精品中文字幕| 亚洲一区二区三区四区五区黄| 后入内射欧美99二区视频| 国产aⅴ丝袜旗袍无码麻豆| 亚洲sm另类一区二区三区| 免费大黄网站| 动漫在线无码一区| 香蕉蜜桃av一区二区三区| 色88久久久久高潮综合影院| 成 人 色综合 综合网站| 亚洲一区丝袜美腿在线观看| 亚洲男人av天堂久久资源| 日韩人妻无码精品久久免费一| 国产成人精选在线不卡| 国产女主播在线免费看| 成品人视频ww入口| 四虎影视在线观看2413|