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

        ?

        基于VxWorks的網(wǎng)絡(luò)多地址通信實(shí)現(xiàn)方法研究

        2015-07-07 23:57:23李文濤
        科技與創(chuàng)新 2015年10期

        李文濤

        摘 要:簡(jiǎn)要介紹了VxWorks系統(tǒng)下實(shí)現(xiàn)網(wǎng)絡(luò)多IP地址通信的方法,分析了網(wǎng)絡(luò)通信技術(shù)的優(yōu)勢(shì),探討了網(wǎng)絡(luò)UDP使用多IP地址和不同Socket端口傳輸技術(shù)在VxWorks系統(tǒng)下的具體應(yīng)用,并針對(duì)相關(guān)實(shí)際應(yīng)用給出了解決方法,在工程應(yīng)用中具有一定的實(shí)用價(jià)值。

        關(guān)鍵詞:VxWorks;Tornado;Socket;IP地址

        中圖分類號(hào):TP393.03 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.15913/j.cnki.kjycx.2015.10.110

        在工程實(shí)踐中,經(jīng)常會(huì)用到設(shè)備之間的數(shù)據(jù)通訊,主要包括串口通信、并口通信、網(wǎng)絡(luò)通信和1553B總線通信等。隨著通訊技術(shù)的進(jìn)步,網(wǎng)絡(luò)通訊技術(shù)以價(jià)格低廉、連接方便等優(yōu)勢(shì)逐漸成為了各種設(shè)備接口互聯(lián)的主要手段,并被廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域。網(wǎng)絡(luò)通信以其開(kāi)發(fā)簡(jiǎn)單、可靠性高、抗干擾性強(qiáng)和傳輸距離長(zhǎng)等特點(diǎn),被廣泛應(yīng)用到了互聯(lián)通信、軍事、航空和航天等技術(shù)領(lǐng)域。

        1 VxWorks網(wǎng)絡(luò)傳輸?shù)奶攸c(diǎn)

        VxWorks是美國(guó)風(fēng)河公司(WindRiver)設(shè)計(jì)開(kāi)發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng),它是嵌入式開(kāi)發(fā)環(huán)境的關(guān)鍵組成部分,而Tornado是其主機(jī)的集成開(kāi)發(fā)環(huán)境。VxWorks的內(nèi)核具有實(shí)時(shí)微內(nèi)核的性能特點(diǎn),比如快速的任務(wù)調(diào)度、中斷延遲時(shí)間短、同時(shí)支持搶占式調(diào)度和時(shí)間片輪轉(zhuǎn)調(diào)度。VxWorks操作系統(tǒng)會(huì)根據(jù)任務(wù)緩急程度設(shè)置通訊任務(wù)的優(yōu)先級(jí)別,通過(guò)搶占的方式執(zhí)行優(yōu)先級(jí)高的任務(wù)。在工程實(shí)踐過(guò)程中,經(jīng)常會(huì)用到多個(gè)設(shè)備之間的通訊,這就要求工作人員設(shè)置網(wǎng)絡(luò)收發(fā)任務(wù),根據(jù)任務(wù)之間緩急程度的不同設(shè)置任務(wù)的優(yōu)先級(jí)。VxWorks網(wǎng)絡(luò)傳輸除了具有與其他操作系統(tǒng)相同的優(yōu)勢(shì)外,還具備實(shí)時(shí)性高、可靠、安全等特點(diǎn)。

        2 VxWorks系統(tǒng)中網(wǎng)絡(luò)多地址通信的實(shí)現(xiàn)

        在Tornado中創(chuàng)建VxWorks工程時(shí),先打開(kāi)BSP所在目錄,在CONFIG.H和CONFIGNET.H文件中聲明用到的網(wǎng)卡名,編譯生成BOOTROM文件。當(dāng)VxWorks系統(tǒng)啟動(dòng)完畢后,可以在當(dāng)前開(kāi)發(fā)工程下的用戶程序接口函數(shù)usrAppInit中或者自己開(kāi)發(fā)的應(yīng)用程序初始化函數(shù)中添加代碼完成基本的網(wǎng)絡(luò)配置。文中以PCPentium自帶的BSP包中的Intel 8255X系列網(wǎng)絡(luò)芯片為例,介紹同一網(wǎng)卡下不同IP地址、網(wǎng)關(guān)和子網(wǎng)掩碼的配置方法。

        ipAttach(0,"fei");

        ifAddrSet("fei0","192.10.1.15");

        ifMaskSet("fei0",0xffffff00);

        if(InitSocket("192.10.1.15",0x2000,Handleone)== TRUE);

        ifAddrAdd("fei0","165.10.1.16","165.10.1.255",0xffff0000);

        if(InitSocket("165.10.1.16",0x3000,Handletwo)== TRUE);

        完成網(wǎng)卡IP地址、網(wǎng)關(guān)和子網(wǎng)掩碼配置后,要選擇和建立通信端口,并確認(rèn)通訊協(xié)議。選用的端口號(hào)要根據(jù)設(shè)備間的接口協(xié)議確定,在沒(méi)有規(guī)定的情況下,可以選擇1025~32767之間的任何一個(gè)沒(méi)有被占用的端口號(hào)。

        TCP與UDP協(xié)議在套接字編程中的區(qū)別是:Socket是程序間通信的方法。在建立套接字時(shí),TCP使用Stream Sockets(流格式)的套接字,UDP使用Datagram Sock-ets(數(shù)據(jù)包格式),在程序中分別用SOCK-STREAM和SOCK-DGRAM標(biāo)識(shí)。由于TCP是面向連接的,所以,在服務(wù)器程序中,要偵聽(tīng)(Listen())端口,客戶端設(shè)置連接(Connect()),而后在服務(wù)器端接收(Accept())。這在UDP中是不需要的,在服務(wù)器中的UDP程序中,只需要一個(gè)接收程序Recvfrom( ),而在客戶端需要一個(gè)發(fā)送函數(shù)Sendto( )。那么,為什么有的UDP程序中也會(huì)出現(xiàn)連接函數(shù)Connect( )呢?因?yàn)镃onnect()函數(shù)中包含了目標(biāo)地址。接下來(lái)就可以用Send()和Receive( )來(lái)代替Sendto( )和Recvfrom( )函數(shù),而系統(tǒng)套接字接口會(huì)自動(dòng)加上目標(biāo)和源的相關(guān)信息。

        總之,TCP和UDP是2種不同的網(wǎng)絡(luò)傳輸層協(xié)議,是實(shí)用且可行的。用戶可以根據(jù)自己不同的需要選擇協(xié)議類型。

        以UDP通信為例,簡(jiǎn)單介紹通信端口建立的過(guò)程:①創(chuàng)建套接字。利用socket()創(chuàng)建套接字。②給創(chuàng)建的套接字命名。用bind()函數(shù)將所需地址捆綁到創(chuàng)建的套接字上,用Setsockopt()函數(shù)設(shè)置包括Broadcast的數(shù)據(jù),完成套接字的創(chuàng)建后就可以用Sendto()和Recvfrom()實(shí)現(xiàn)指定端口的UDP數(shù)據(jù)收發(fā)。③關(guān)閉套接字。當(dāng)所有的數(shù)據(jù)操作結(jié)束后,應(yīng)調(diào)用close()函數(shù)釋放不用的套接字,從而停止該端口上的數(shù)據(jù)操作。

        3 套接字創(chuàng)建程序和說(shuō)明

        Int InitSocket(char * localAddr,UINT localPort,int *intSocketHandle)

        {/****套嵌字創(chuàng)建***/

        struct sockaddr_in soc;

        int Socket, sockAddrSize;/*變量定義*/

        BOOL bl=TRUE;

        Socket = socket (AF_INET,SOCK_DGRAM, 0);/*創(chuàng)建套嵌字*/

        if (Socket == ERROR)/*創(chuàng)建套嵌字失敗*/

        {

        return FALSE;/*返回錯(cuò)誤值*/

        }

        sockAddrSize = sizeof (struct sockaddr_in);

        bzero ((char *)& soc, sockAddrSize);

        soc.sin_len = (u_char) sockAddrSize;

        soc.sin_family = AF_INET;

        soc.sin_port = htons ((short)localPort);/*端口*/

        soc.sin_addr.s_addr =inet_addr(localAddr);

        if (bind(Socket, (SOCKADDR *)&soc,sizeof(soc)) == ERROR)

        {

        return FALSE;/*返回錯(cuò)誤值*/

        } if(setsockopt(Socket,SOL_SOCKET ,SO_BROADCAST,(char*)&(bl),sizeof(bl))==ERROR)

        {

        return FALSE;/*返回錯(cuò)誤值*/

        }

        return TRUE;/*返回正確值*/

        }

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

        本文設(shè)計(jì)了一種基于Vxworks系統(tǒng)的多IP地址多端口的UDP網(wǎng)絡(luò)通信方法,該方法已在實(shí)際設(shè)計(jì)的軟件模擬器中仿真實(shí)現(xiàn),并完成了大量不同數(shù)據(jù)包的收發(fā)。通過(guò)網(wǎng)絡(luò)監(jiān)視工具監(jiān)測(cè)整個(gè)通信過(guò)程,無(wú)丟包和數(shù)據(jù)錯(cuò)誤的情況發(fā)生,保證了同一網(wǎng)卡下多地址數(shù)據(jù)傳輸?shù)姆€(wěn)定性。

        〔編輯:白潔〕

        久久不见久久见中文字幕免费| 亚洲av高清在线一区二区三区| 久久网站在线免费观看| 亚洲综合日韩一二三区| 99久久精品费精品国产一区二| 少妇放荡的呻吟干柴烈火动漫| 屁屁影院一区二区三区| 偷拍自拍一区二区三区| 亚洲国产天堂久久综合网| 乱中年女人伦av一区二区| 丰满少妇被猛烈进入无码| 熟妇与小伙子露脸对白| 日本一区二区三区区视频| 亚洲国产成人精品无码区在线播放| 色综合久久88色综合天天| 最近中文字幕视频高清| 亚洲欧美日韩国产一区二区精品| 久久精品国产亚洲av热明星| 蜜桃国产精品视频网站| av高清在线不卡直播| 亚洲中字慕日产2020| 99re在线视频播放| 人妻熟女妇av北条麻记三级| 日韩精品熟女中文字幕| 少妇无码太爽了不卡视频在线看 | 精品香蕉久久久爽爽 | 综合精品欧美日韩国产在线| 18禁成人免费av大片一区| 少妇无套裸按摩呻吟无呜| 狠狠色婷婷久久综合频道日韩| 久久久久久成人毛片免费看| 精品国产福利一区二区三区| 狼狼色丁香久久女婷婷综合| 精品人妻少妇嫩草av无码专区| 亚洲av无码一区二区三区系列| 妺妺窝人体色www聚色窝韩国| 亚洲国产精品成人一区| 国产人妻熟女呻吟在线观看| 97人人模人人爽人人喊电影| 欧美韩国精品另类综合| 中文字幕久久国产精品|