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

        ?

        基于QT的網絡聊天系統(tǒng)設計

        2015-04-30 06:34:47趙茁琳陳恒如韓利凱
        軟件導刊 2015年4期
        關鍵詞:嵌入式系統(tǒng)

        趙茁琳 陳恒如 韓利凱

        摘要摘要:根據嵌入式應用特點對嵌入式終端下的網絡聊天系統(tǒng)進行設計,實現了實時通信和文檔共享,具有數據通訊不需要建立服務器、直接在兩臺電腦間進行通信和數據傳輸、支持文件及文件目錄傳輸、安全快捷等特點。

        關鍵詞關鍵詞:QT;Linux;嵌入式系統(tǒng);網絡聊天系統(tǒng)

        DOIDOI:10.11907/rjdk.1431092

        中圖分類號:TP319

        文獻標識碼:A文章編號文章編號:16727800(2015)004011402

        0引言

        QT是諾基亞公司開發(fā)的一個跨平臺應用程序框架,使用QT編寫的軟件可以移置到任意操作系統(tǒng)上編譯與運行,而不需要修改源代碼,軟件會自動依據使用平臺的不同,而呈現出平臺原有的圖形界面風格。QT是一個跨平臺的C++ GUI應用構架,它提供了豐富多彩的窗口部件集,具有易于擴展、面向對象、基于組件編程等特點。并且,目前Linux上最流行的KDE桌面環(huán)境就是建立在QT庫的基礎上。因此,利用Linux進行基于QT的嵌入式聊天系統(tǒng)設計與開發(fā)具有一定的應用價值。

        1系統(tǒng)組成架構

        系統(tǒng)主要由文字聊天模塊和文件傳輸模塊組成。

        1.1文字聊天模塊

        系統(tǒng)采用C/S架構,客戶端也同時作為服務器端。系統(tǒng)發(fā)送信息給局域網用戶時,如圖1所示,由單播模塊和廣播模塊來實現,信息接受則由信息接收和信息查看兩個模塊完成。

        1.2文件傳輸模塊

        系統(tǒng)傳送文件使用TCP協議,端口為2425,如圖2所示,文件傳輸前有個“3次握手”過程,通過“3次握手”從而建立起一個TCP連接,實現文件、文件夾傳輸,最后關閉套接字連接。

        2系統(tǒng)設計

        2.1系統(tǒng)用戶列表建立

        通過使用UDP協議,在系統(tǒng)啟動時向255.255.255.255廣播地址發(fā)送廣播包,廣播包默認端口是2425,廣播包內容包含工作組、用戶名、IP地址、主機名等信息。已經啟動的用戶通過端口2425接收到此廣播包后,就會在自己的用戶列表中添加該用戶的工作組、用戶名、IP地址、主機名等信息,同時向對方IP地址發(fā)送本機用戶的個人信息,從而使雙方建立起用戶列表。當刷新用戶列表時發(fā)送的廣播包和啟動時相似,只是返回的標識信息和啟動時略有不同,可以使用Wireshark抓包工具,監(jiān)控端口2425的數據,就能截獲聊天和刷新時的信息[1]

        2.2系統(tǒng)聊天信息傳送

        系統(tǒng)聊天信息傳送使用UDP協議,由于UDP協議提供的是無連接服務,所以傳輸速度快,但是由于沒有確認機制,因而提供的是不可靠的服務,需要自己定義返回信息的標志來判斷對方是否接收到信息。

        使用IPMSG_SENDMSG命令發(fā)送消息,消息內容添加在附加信息中。在接收消息時,如果對方要求回信確認,則需發(fā)送IPMSG_RECVMSG命令并將對方發(fā)送的數據包的編號放在附加信息中一同發(fā)送至發(fā)送消息方。發(fā)送廣播消息需要使用IPMSG_BOADCASTOPT標志和IPMSG_SENDMSG命令[2]。

        自動發(fā)送包(缺席通知)還需要加上IPMSG_AUTORETOPT標志以得到請求-應答保護,如果沒有任何一個包應答,則確認自動發(fā)送包沒有返回。

        2.3文件傳輸

        文件傳輸使用帶有IPMSG_FILEATTACHOPT位的IPMSG_SENDMSG命令進行傳輸,文件屬性及內容添加在附加信息中。當接收端開始接收文件時,接收端將請求傳輸文件命令IPMSG_GETFILEDATA發(fā)送到發(fā)送端的TCP端口,并將發(fā)送端發(fā)送的包編號:文件序號:偏移量寫到附加信息區(qū)一同發(fā)送,文件發(fā)送端接收到該請求信息后進行校驗,如果正確即可向接收端發(fā)送文件[3]。

        當接收端接收到目錄文件時,將發(fā)送附加信息區(qū)為發(fā)送端發(fā)送的包進行編號:文件序號:偏移量(全為十六進制格式),用IPMSG_GETDIRFILES命令請求傳輸目錄文件,而發(fā)送端則將頭信息長度:文件名:文件大?。何募傩裕何募热萏砑拥礁郊有畔^(qū),頭信息長度是從頭信息長度開始到文件內容前的‘:分割符為止的字符個數。當文件屬性為IPMSG_FILE_DIR時,系統(tǒng)能夠自動識別其為目錄,下一個文件的數據在該目錄之后,若文件屬性為IPMSG_FILE_RETPARENT,系統(tǒng)識別其動作為返回上一級目錄,在這種情況下,文件名為‘.,其屬性為當前目錄的值[4]。

        2.4用戶離線

        當用戶離線時,可以發(fā)送一個離線廣播包到255.255.255.255,收到此廣播包的用戶,根據包中的IP地址

        (也可能是包含硬件標識,比如網卡地址或者多種判斷標

        志等)刪除對方的用戶列表信息。

        3系統(tǒng)測試

        將兩臺或者兩臺以上主機組成一個局域網,運行該系統(tǒng),在登陸界面中輸入用戶名和組名,如圖3所示,好友列表會顯示所有在線用戶。雙擊想要聊天的用戶頭像,就會打開聊天窗口,在文字輸入框內輸入文字,點“Send”按鈕或者按Ctrl+Enter鍵就可以給對方發(fā)送消息。

        4結語

        該系統(tǒng)根據嵌入式應用的特點,對嵌入式終端下的網絡聊天系統(tǒng)進行了設計,實現了實時通信和文檔共享。進行數據通訊時,不需要建立服務器,可直接在兩臺電腦間實現通信和數據傳輸,安全且快捷。

        參考文獻參考文獻:

        [1]STANLEY B,LIPPMAN BARBARA E. C++ Primer (4rd Editio)[M].李師賢,愛軍,梅曉勇,譯.北京:人民郵電出版,2010.

        [2]SCOTT MEYERS.Effective C++[M].潘愛民,侯捷,譯.北京:電子工業(yè)出版社,2010.

        [3]王和平.Qt從入門到精通[EB/OL ].http://www.fghyu.com.

        [4]網絡協議解析手記[EB/OL].http://www.wlxysj.com.

        責任編輯(責任編輯:孫娟)

        猜你喜歡
        嵌入式系統(tǒng)
        辦公自動化系統(tǒng)的設計
        嵌入式系統(tǒng)在醫(yī)療器械中的應用分析
        基于物聯網項目驅動的嵌入式系統(tǒng)教學改革的研究與實踐
        嵌入式系統(tǒng)課程“中斷、異常與事件”教學實踐及啟示
        計算機教育(2016年7期)2016-11-10 08:31:34
        面向實踐創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學研究
        計算機教育(2016年7期)2016-11-10 08:12:11
        在DiskOnChip上構建VxWorks系統(tǒng)開發(fā)環(huán)境
        香蕉人人超人人超碰超国产| 日韩字幕无线乱码免费| 伊人五月亚洲综合在线| 日本伦理精品一区二区三区| 欧美丰满熟妇bbbbbb| 色欲人妻综合网| 国产免费播放一区二区| 精品国产乱码久久免费看| 日韩av一区二区三区精品久久 | 波多野结衣一区二区三区免费视频| 亚洲视频不卡免费在线| 一区二区三区精品免费| 亚洲国产精品无码久久一区二区| av无码精品一区二区三区宅噜噜| 久久婷婷色综合一区二区 | 久久婷婷五月综合97色直播| 天堂资源中文最新版在线一区| 国产精品 视频一区 二区三区| 亚洲色图视频在线播放| 亚洲午夜经典一区二区日韩| 亚洲成av人综合在线观看| 国产精品夜间视频香蕉| 日本一区二区啪啪视频| 成人全视频在线观看免费播放| 二区免费在线视频观看| 欧美人与禽2o2o性论交| 国产免费午夜a无码v视频| 日韩AV无码乱伦丝袜一区| 国产一区二区三区免费视| 久久中文骚妇内射| 伊人色综合视频一区二区三区| 啊v在线视频| 久久久黄色大片免费看| 最美女人体内射精一区二区| 国产精品爽黄69天堂a| 国产日本在线视频| 国产日本精品一区二区| 浓毛老太交欧美老妇热爱乱| 国产高清一区二区三区视频| 毛片av在线播放亚洲av网站| 亚洲高清精品一区二区|