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

        ?

        基于Linux聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2017-12-21 17:42:00王維陳偉聶維

        王維++陳偉++聶維

        摘要:本文基于Linux系統(tǒng),使用socket技術(shù)和TCP協(xié)議編程實(shí)現(xiàn)了聊天系統(tǒng)。該系統(tǒng)由服務(wù)器與客戶端組成,數(shù)據(jù)庫(kù)選用MySQL,其中服務(wù)器使用Linux的C語(yǔ)言編寫,客戶端使用Linux的QT編寫。該系統(tǒng)可以支持多用戶在線聊天,能夠?qū)崿F(xiàn)截圖、文件發(fā)送等復(fù)雜功能。

        關(guān)鍵詞:Linux;TCP;socket;聊天系統(tǒng)

        中圖分類號(hào):TP316.81 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)10-0154-02

        近幾年隨著信息的高速發(fā)展,人們?cè)絹?lái)越傾向于借助網(wǎng)絡(luò)通過(guò)聊天工具進(jìn)行交流。當(dāng)前聊天系統(tǒng)的開發(fā)技術(shù)越來(lái)越成熟,大多數(shù)聊天系統(tǒng)使用的協(xié)議是TCP/IP協(xié)議和UDP/IP協(xié)議[1],并且大多基于Windows平臺(tái)。本文主要研究基于Linux操作系統(tǒng)的socket通信技術(shù)的聊天系統(tǒng)。

        1 聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        本系統(tǒng)采用C/S架構(gòu),使用ububtu14.04 操作系統(tǒng),基于TCP協(xié)議[2],使用MySQL14.14數(shù)據(jù)庫(kù)存儲(chǔ)用戶的相關(guān)信息、聊天記錄等。其中客戶端主要完成用戶的登錄、注冊(cè)、信息管理、聊天等功能,使用跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架QT實(shí)現(xiàn)[3];服務(wù)器端主要完成服務(wù)器端的初始化及監(jiān)聽、消息的存儲(chǔ)和轉(zhuǎn)發(fā)、系統(tǒng)消息的發(fā)送和信息管理等功能,使用Linux下的C語(yǔ)言實(shí)現(xiàn)[4],其總體功能模塊圖如圖1所示。以下部分對(duì)部分模塊的實(shí)現(xiàn)進(jìn)行介紹。

        1.1 截圖模塊

        該模塊實(shí)現(xiàn)截圖區(qū)域任意大小的選擇,同時(shí)調(diào)整選擇區(qū)域及對(duì)選定區(qū)域的重選及保存,具體算法如:(1)調(diào)用updateMoveControlMouseShape(controlValue)函數(shù)改變8個(gè)控制點(diǎn)的鼠標(biāo)狀態(tài),以順時(shí)針方向編號(hào)完成坐標(biāo)的初始化并顯示。(2)選取區(qū)域的高度和寬度,調(diào)用QPixmap::grabWindow()抓取當(dāng)前屏幕圖片,將當(dāng)前狀態(tài)beginControl設(shè)置為finishControl,確定選定區(qū)域后發(fā)送finishPixmap信號(hào)。

        1.2 文件發(fā)送模塊

        文件發(fā)送借助Linux文件系統(tǒng)相關(guān)的系統(tǒng)調(diào)用實(shí)現(xiàn)。文件發(fā)送分為發(fā)送方和接收方。首先介紹發(fā)送方:(1)檢測(cè)發(fā)送方是否在線,并返回提示信息。(2)使用open()函數(shù)打開文件,同時(shí)設(shè)置打開方式為只讀。(3)設(shè)定每次只發(fā)送1K(1024字節(jié))大小的文件,先發(fā)送文件頭,再發(fā)送文件體,同時(shí)增加延時(shí)處理避免粘包,同時(shí)提示用戶文件是否發(fā)送成功。

        接收方:(1)如果接收文件頭,以“wb”方式創(chuàng)建文件;如果接收文件體,以“ab”方式打開文件;(2)使用函數(shù)write((char *)msg->body,1,rc-4,fp),將接收的文件寫入已經(jīng)打開的文件,使用函數(shù)flush(fp)刷新緩沖區(qū);(3)檢測(cè)是否接收成功:即接收的總字節(jié)數(shù)與被打開的文件字節(jié)數(shù)是否相等。

        2 測(cè)試

        經(jīng)過(guò)測(cè)試,該聊天系統(tǒng)能夠正常運(yùn)行,其中局部截圖、文件發(fā)送分別如圖2、圖3所示。

        3 結(jié)語(yǔ)

        本文基于Linux操作系統(tǒng),使用TCP的socket編程實(shí)現(xiàn)了聊天系統(tǒng)。該系統(tǒng)使用QT開發(fā)了客戶端,使用C語(yǔ)言開發(fā)了服務(wù)器端,同時(shí)使用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)用戶的相關(guān)信息,極大的方便了用戶之間的交流。在下一步的工作中,我們將嘗試將該聊天系統(tǒng)移植到ARM平臺(tái)。

        參考文獻(xiàn)

        [1]曾宏安,馮利美.嵌入式應(yīng)用程序設(shè)計(jì)綜合教程[M].北京:人民郵電出版社,2014.

        [2]李淑梅,王志彬.Socket在局域網(wǎng)聊天系統(tǒng)中的應(yīng)用[J].吉林師范大學(xué)學(xué)報(bào):自然科學(xué)版,2014,(1):71-73.

        [3]陳爽.Linux與Qt程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2011.

        [4]賈明,嚴(yán)世賢.Linux下的C編程[M].北京:人民郵電出版社,2001.endprint

        国产精品三级在线观看无码| 中文字幕无码av激情不卡| 国内揄拍国内精品| 国内精品91久久久久| 色综合久久人妻精品日韩| 国产成人精品一区二区20p| 久久精品99久久香蕉国产| 性夜夜春夜夜爽aa片a| 一区二区三区蜜桃在线视频| 色婷婷综合一区二区精品久久 | 怡春院欧美一区二区三区免费 | 国产人妖网站在线视频| 精品国产三级a∨在线欧美| 六月丁香综合在线视频| 久久久久久亚洲精品中文字幕| 少妇厨房愉情理伦片bd在线观看| 亚洲AV日韩Av无码久久| 日本一区二区不卡二区| 丰满人妻久久中文字幕| 亚洲欧美乱日韩乱国产| 日产精品久久久久久久| 网红极品女神精品视频在线| 三区中文字幕在线观看| 欧美激情在线播放| 日韩av精品国产av精品| 国产精品天堂avav在线| 美利坚亚洲天堂日韩精品| 日本熟妇人妻xxxx| 精品久久久无码中文字幕| 人妻av午夜综合福利视频| 久草视频在线手机免费看| 欧美金发尤物大战黑人| 成人伊人亚洲人综合网站222| 日本午夜理伦三级好看| 亚洲国产精品av在线| 极品美女aⅴ在线观看| 亚洲嫩草影院久久精品| 国产一区二区三区青青草| 国产农村熟妇videos| 久久狠狠第一麻豆婷婷天天| 99久久久精品国产性黑人|