999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人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語言編寫,客戶端使用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è)絹碓絻A向于借助網(wǎng)絡(luò)通過聊天工具進(jìn)行交流。當(dāng)前聊天系統(tǒng)的開發(fā)技術(shù)越來越成熟,大多數(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語言實(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)過測(cè)試,該聊天系統(tǒng)能夠正常運(yùn)行,其中局部截圖、文件發(fā)送分別如圖2、圖3所示。

3 結(jié)語

本文基于Linux操作系統(tǒng),使用TCP的socket編程實(shí)現(xiàn)了聊天系統(tǒng)。該系統(tǒng)使用QT開發(fā)了客戶端,使用C語言開發(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

主站蜘蛛池模板: 尤物在线观看乱码| 97在线观看视频免费| 亚洲视频黄| www精品久久| 日本一区二区不卡视频| 日韩高清成人| 成人在线天堂| 人妻中文久热无码丝袜| 精品少妇人妻av无码久久| 久久这里只有精品66| 国产一级α片| 理论片一区| 91麻豆精品国产91久久久久| 欧美日韩一区二区在线免费观看 | 青青草国产免费国产| 91成人在线观看| 四虎国产精品永久在线网址| 韩日无码在线不卡| 亚洲无卡视频| 国产精品三级av及在线观看| 国产精品视频导航| 亚洲欧美另类专区| 国产成人精品免费视频大全五级| 综合社区亚洲熟妇p| 91日本在线观看亚洲精品| 亚洲成人免费看| 蜜桃臀无码内射一区二区三区| 午夜毛片免费观看视频 | 成人免费视频一区| 国产精品自在在线午夜| 日韩无码视频专区| 欧美不卡在线视频| 久久午夜影院| 四虎精品黑人视频| 国产美女在线观看| 亚洲人人视频| 亚洲综合久久一本伊一区| 97国产在线视频| 91小视频在线观看| 国产极品美女在线| 少妇人妻无码首页| 亚洲国产精品久久久久秋霞影院 | 国产在线拍偷自揄拍精品| 久久久久久久97| 国产视频你懂得| 国产91无毒不卡在线观看| 亚洲AV无码一区二区三区牲色| hezyo加勒比一区二区三区| 就去吻亚洲精品国产欧美| 日韩大乳视频中文字幕| 久久这里只有精品8| 国产成人无码AV在线播放动漫 | 亚洲中文字幕97久久精品少妇| 91区国产福利在线观看午夜| 欧美日韩激情在线| 亚洲成A人V欧美综合| 国产福利小视频在线播放观看| 波多野结衣的av一区二区三区| 国内黄色精品| 最新国产午夜精品视频成人| 性视频一区| 国产精品三级专区| 国产波多野结衣中文在线播放| 黄色国产在线| 九色91在线视频| 伊人久久婷婷| JIZZ亚洲国产| 99中文字幕亚洲一区二区| 亚洲欧美在线精品一区二区| 久久动漫精品| 成人第一页| 日韩毛片基地| 草逼视频国产| 性色生活片在线观看| 亚洲无码视频一区二区三区| 亚洲综合色婷婷中文字幕| 亚洲精品国产精品乱码不卞 | 她的性爱视频| 性色在线视频精品| 亚洲娇小与黑人巨大交| 欧美日韩导航| 精品综合久久久久久97|