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

        ?

        基于組播的圖像共享軟件設(shè)計(jì)

        2020-08-20 08:56:26成世漢
        山西電子技術(shù) 2020年4期
        關(guān)鍵詞:圖像文件服務(wù)器端線程

        成世漢

        (山西大眾電子信息產(chǎn)業(yè)集團(tuán)有限公司,山西 太原 030024)

        0 引言

        組播傳輸已經(jīng)服務(wù)于醫(yī)療、網(wǎng)絡(luò)教育以及視頻會(huì)議等領(lǐng)域,隨著支持組播傳輸?shù)穆酚善?、交換機(jī)和集線器等網(wǎng)絡(luò)設(shè)備的發(fā)展將使組播技術(shù)得到進(jìn)一步完善和推廣。相較于單播傳輸面對(duì)多接收方時(shí)網(wǎng)絡(luò)延時(shí)大、阻塞嚴(yán)重的情況,組播僅需要單次發(fā)送數(shù)據(jù)包,只有加入組播地址的接收方會(huì)接收到數(shù)據(jù),網(wǎng)絡(luò)傳輸效率顯著提高,同時(shí)規(guī)避了廣播傳輸浪費(fèi)網(wǎng)絡(luò)帶寬的情況。本軟件采用C/S模型,服務(wù)器端對(duì)圖像進(jìn)行分包后發(fā)送至組播地址,客戶端將本地IP加入組播,接收數(shù)據(jù)幀并完成組包后顯示圖像。下面將對(duì)軟件設(shè)計(jì)進(jìn)行具體介紹。

        1 設(shè)計(jì)思路

        本軟件提供服務(wù)器端和客戶端,發(fā)送方為服務(wù)器端,接收方為客戶端,設(shè)計(jì)思路如圖1所示。

        圖1 圖像共享設(shè)計(jì)思路

        具體設(shè)計(jì)思路如下:

        1) 服務(wù)器端設(shè)置組播地址和端口,客戶端將本地IP加入該組播地址;

        2) 服務(wù)器端獲取圖像文件的名稱和大小,計(jì)算發(fā)送幀數(shù)量;

        3) 服務(wù)器端向組播地址發(fā)送圖像文件的名稱、大小以及發(fā)送幀數(shù)量信息,發(fā)送幀格式如圖2所示;

        圖2 發(fā)送幀格式

        4) 客戶端接收并解析接收到的圖像文件名稱、大小以及發(fā)送幀數(shù)量信息;

        5) 客戶端根據(jù)圖像文件的大小創(chuàng)建緩存文件;

        6) 服務(wù)器端根據(jù)發(fā)送幀數(shù)對(duì)圖像文件進(jìn)行分包,將數(shù)據(jù)幀依次發(fā)送至組播地址;

        7) 客戶端接收并存儲(chǔ)接收到的數(shù)據(jù)幀,通過(guò)接收線程處理數(shù)據(jù),當(dāng)接收幀數(shù)量與接收到的發(fā)送幀數(shù)量信息相等時(shí)關(guān)閉存儲(chǔ)文件,將數(shù)據(jù)轉(zhuǎn)換為圖像進(jìn)行顯示;

        8) 客戶端清除圖像緩存。

        2 軟件設(shè)計(jì)

        2.1 服務(wù)器端設(shè)計(jì)

        服務(wù)器端主要由CServerDlg、CMulticastAdmin和CSendPictureThread三個(gè)類組成。CServerDlg為服務(wù)器端的對(duì)話框類,可對(duì)組播IP和端口以及圖像索取路徑進(jìn)行設(shè)置,同時(shí)具備圖像顯示功能。服務(wù)器端界面如圖3所示。CMulticastAdmin為組播類,通過(guò)使用2.2版本的WinSock DLL初始化Socket函數(shù)庫(kù)。CServerDlg通過(guò)調(diào)用CMulticastAdmin中部分函數(shù)實(shí)現(xiàn)組播的創(chuàng)建、發(fā)送和銷毀。CSendPictureThread是為適應(yīng)高分辨率圖像數(shù)據(jù)量大而設(shè)計(jì)的發(fā)送線程。CServerDlg調(diào)用CSendPictureThread完成數(shù)據(jù)的發(fā)送。

        圖3 服務(wù)器端界面顯示

        CServerDlg、CMulticastAdmin和CSendPictureThread三個(gè)類的調(diào)用關(guān)系見(jiàn)圖4。

        圖4 服務(wù)器端類調(diào)用關(guān)系圖

        由于高分辨率圖像占用空間較大,常規(guī)數(shù)據(jù)幀無(wú)法通過(guò)單次發(fā)送完成圖像傳輸,所以需要通過(guò)分包的方式通過(guò)多次發(fā)送完成數(shù)據(jù)傳輸。分包實(shí)現(xiàn)代碼如下:

        ULONG nCount=UFlieLength/ONEFRAMELENGH+1;//計(jì)算發(fā)送幀數(shù)量

        if (UFlieLength/ONEFRAMELENGH%1024==0)

        {

        --nCount;

        }

        char*pDataBuffer;

        pDataBuffer=new char[ONEFRAMELENGH];//分配數(shù)據(jù)幀空間

        ZeroMemory(pDataBuffer,ONEFRAMELENGH);

        for(ULONGi=0;i

        {

        File.Seek(i*ONEFRAMELENGH,CFile::begin);

        UINT nBufferLength=File.Read(pDataBuffer,ONEFRAMELENGH);//獲取圖像數(shù)據(jù)

        STU_FRAME CurDataFrame;

        ZeroMemory(&CurDataFrame,sizeof(STU_FRAME));

        CurDataFrame.nFrameLength=nBufferLength;

        memcpy(&CurDataFrame.chFrame,pDataBuffer,nBufferLength);//給發(fā)送幀賦值

        AddFrametoList(CurDataFrame);//將發(fā)送幀加入發(fā)送列表由發(fā)送線程發(fā)送至組播地址

        }

        2.2 客戶端設(shè)計(jì)

        客戶端由CClientDlg、CMulticastAdmin和CRcvPictureThread三個(gè)類組成。CClientDlg為客戶端的對(duì)話框類,可對(duì)組播IP和端口以及圖像緩存路徑進(jìn)行設(shè)置??蛻舳私缑嫒鐖D5所示。CMulticastAdmin為與服務(wù)器端相同的組播類。CClientDlg通過(guò)調(diào)用CMulticastAdmin中部分函數(shù)實(shí)現(xiàn)本地IP加入組播地址以及組播數(shù)據(jù)接收線程的啟動(dòng)和停止。CRcvPictureThread是處理組播數(shù)據(jù)的線程,該線程主要處理兩類數(shù)據(jù),一類為圖像的基本信息,另一類為圖像的數(shù)據(jù)信息,為確保在先接收到圖像的基本信息,本軟件初始化雙組播地址確保圖像基本信息擁有優(yōu)先被處理能力。CClientDlg調(diào)用CRcvPictureThread完成數(shù)據(jù)的緩存和圖像顯示??蛻舳思嫒輬D像灰度圖轉(zhuǎn)換、圖像另存、格式轉(zhuǎn)換和分辨率調(diào)節(jié)等功能,可滿足基本圖像處理要求。

        圖5 客戶端界面顯示

        CClientDlg、CMulticastAdmin和CRcvPictureThread三個(gè)類的調(diào)用關(guān)系與服務(wù)器端類調(diào)用關(guān)系類似??蛻舳嗽谑褂媒M播技術(shù)接收數(shù)據(jù)前需要將本地IP加入組播地址,本軟件自動(dòng)獲取本地IP,調(diào)用CMulticastAdmin中的void SetLocalIP(CString strIP)和BOOL CreateReceiver(void)函數(shù)完成本地IP加入。實(shí)現(xiàn)代碼如下:

        CString strIP;

        char strHostName[100]={0};

        if(SOCKET_ERROR!=gethostname(strHostName,sizeof(strHostName)))//獲取計(jì)算機(jī)全名

        {

        hostent*Localhp;

        Localhp=gethostbyname(strHostName);//通過(guò)計(jì)算機(jī)全名獲取主機(jī)信息

        if(Localhp!=NULL&&Localhp->h_addr!=NULL)

        {

        strIP=inet_ntoa(*(struct in_addr*)hp->h_addr);//得到本地IP

        theApp.m_pMulticast->SetLocalIP(strIP);//將本地IP加入組播地址中

        }

        }

        BOOL bRtn=theApp.m_pMulticast->CreateReceiver();//創(chuàng)建組播接收線程

        2.3 類CMulticastAdmin的設(shè)計(jì)

        本軟件實(shí)現(xiàn)組播傳輸主要依靠組播類CMulticastAdmin。CMulticastAdmin為服務(wù)器端提供了組播IP和組播端口設(shè)置函數(shù)、組播創(chuàng)建和銷毀函數(shù)以及數(shù)據(jù)發(fā)送函數(shù),為客戶端提供了本地IP加入組播函數(shù)、啟動(dòng)和停止接收線程函數(shù)以及銷毀組播函數(shù),CMulticastAdmin結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖6。通過(guò)組播類的調(diào)用,既達(dá)到了多用戶圖像共享的目的,也有效降低了網(wǎng)絡(luò)負(fù)載,可謂一舉兩得。

        3 相關(guān)知識(shí)

        使用組播傳輸時(shí),需要使用通信雙方認(rèn)知的D類地址作為廣播地址發(fā)送向目的端口。D類地址范圍為224.0.0.0—239.255.255.255,其中224.0.0.0—224.0.0.255為預(yù)留組播地址(永久組地址),用戶不可使用;224.0.1.0—238.255.255.255為用戶可用組播地址,本軟件采用238.8.8.8作為默認(rèn)組播地址,用戶也可根據(jù)實(shí)際情況設(shè)置符合路由協(xié)議的組播地址;239.0.0.0—239.255.255.255屬于本地管理組播地址,僅在特定范圍有效。在傳輸過(guò)程中使用的路由器、集線器、交換機(jī)和防火墻等設(shè)備需要具備組播傳輸模式,尤其在跨網(wǎng)段傳輸過(guò)程中必須打開(kāi)三層交換機(jī)的組播路由協(xié)議(通常為PIM稀疏模式),有時(shí)還需設(shè)置TTL(Time To Live),避免數(shù)據(jù)幀在網(wǎng)絡(luò)中循環(huán)收發(fā)。相信隨著科技水平的不斷進(jìn)步,組播傳輸應(yīng)用更加廣泛,組播模式必將成為網(wǎng)絡(luò)傳輸設(shè)備中的必備模式。

        圖6 CMulticastAdmin類圖

        4 結(jié)束語(yǔ)

        本軟件通過(guò)組播傳輸方式實(shí)現(xiàn)了高分辨率圖像的一對(duì)多共享,其實(shí)不光是圖像共享,任何信息都可通過(guò)組播方式實(shí)現(xiàn)共享,尤其是大容量信息共享時(shí)更能體現(xiàn)出組播傳輸?shù)膬?yōu)越性能。同時(shí)在保證互聯(lián)互通的基礎(chǔ)上,任意終端方均可創(chuàng)建組播成為服務(wù)器端,客戶端只需以訂閱的形式加入組播地址便可完成資源共享,這種有效降低網(wǎng)絡(luò)負(fù)載、應(yīng)用靈活的網(wǎng)絡(luò)傳輸方式不僅僅服務(wù)于醫(yī)療、網(wǎng)絡(luò)教育以及視頻會(huì)議領(lǐng)域,還會(huì)對(duì)工業(yè)生產(chǎn)產(chǎn)生重大影響。

        猜你喜歡
        圖像文件服務(wù)器端線程
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        淺談linux多線程協(xié)作
        圖像電子文件的歸檔格式及其轉(zhuǎn)換研究
        檔案管理(2017年1期)2017-01-17 19:15:57
        在Windows中安裝OpenVPN
        Linux線程實(shí)現(xiàn)技術(shù)研究
        網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
        在TC界面以縮略圖查看圖像文件
        電腦迷(2012年22期)2012-04-29 20:30:54
        么移動(dòng)中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
        《圖像文件探尋之旅——圖像文件概述》教學(xué)設(shè)計(jì)及反思
        圖像文件壓縮算法淺析
        少妇高潮惨叫久久久久电影| 免费人成激情视频在线观看冫| 香港三日本三级少妇三级视频| 亚洲成色www久久网站夜月| 国产精品乱码在线观看| 国产一区二区三区爆白浆| 亚洲中文字幕av一区二区三区人| 亚洲无人区一码二码国产内射 | 亚洲av日韩精品久久久久久久| 免费人成视频x8x8| 亚洲综合伦理| 一本色道久久88加勒比—综合| 婷婷色婷婷开心五月四| 99久久国产综合精品五月天| 亚洲熟妇色xxxxx欧美老妇| 午夜亚洲精品视频网站| 亚洲av男人的天堂一区| 国产99视频精品免视看7| 亚洲欧美日韩精品久久亚洲区| 午夜不卡亚洲视频| 国产精品女同二区五区九区 | 国产精品女同一区二区久| 亚洲精品成人无百码中文毛片| 国产精品人妻一区二区三区四| 久久成人麻豆午夜电影| 蜜桃网站在线免费观看视频 | 成人性生交c片免费看| 白嫩人妻少妇偷人精品| 亚洲av第一页国产精品| AV永久天堂网| 久久精品国产亚洲av专区| 国产一区二区三区在线综合视频 | 亚洲αv在线精品糸列| 久久午夜夜伦鲁鲁片免费无码| 无码之国产精品网址蜜芽| 日韩精品中文字幕免费人妻| 99久久国产精品网站| 国产久热精品无码激情| 狼色在线精品影视免费播放| 日本三区在线观看视频| 久久99国产精品久久99果冻传媒 |