999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VxWorks下的FTP傳輸技術(shù)研究

2015-06-16 03:44:50李文濤徐波
科技與創(chuàng)新 2015年11期

李文濤 徐波

摘 要:介紹了VxWorks系統(tǒng)下實(shí)現(xiàn)FTP傳輸文件的方法,分析了使用FTP傳輸技術(shù)的優(yōu)勢(shì),探討了FTP傳輸技術(shù)在VxWorks系統(tǒng)下的具體應(yīng)用,就如何進(jìn)行實(shí)際應(yīng)用給出了解決方法,這在工程應(yīng)用中具有一定的實(shí)用價(jià)值。

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

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

VxWorks是通過Tornado開發(fā)工具編譯完成的鏡像,可以單獨(dú)在目標(biāo)機(jī)上運(yùn)行,而雷達(dá)數(shù)據(jù)處理軟件是在VxWorks鏡像上的運(yùn)用程序,當(dāng)VxWorks鏡像中沒有嵌入FTP時(shí),就無法通過網(wǎng)絡(luò)訪問到目標(biāo)機(jī),同時(shí),也無法查看和更改目標(biāo)機(jī)中的文件。隨著計(jì)算機(jī)硬件配置日益完善、網(wǎng)絡(luò)技術(shù)越來越成熟,使用網(wǎng)絡(luò)訪問目標(biāo)機(jī)進(jìn)行數(shù)據(jù)交換更加方便、快捷。在雷達(dá)數(shù)據(jù)處理軟件運(yùn)行時(shí),通常會(huì)產(chǎn)生大量的數(shù)據(jù)文件,有時(shí)也可能需要修改內(nèi)部相關(guān)的配置文件。這就要求工作人員在開發(fā)雷達(dá)數(shù)據(jù)處理軟件時(shí)嵌入FTP,以實(shí)現(xiàn)網(wǎng)絡(luò)訪問功能。本文簡(jiǎn)要介紹了在應(yīng)用程序中嵌入FTP的方法。

1 VxWorks系統(tǒng)簡(jiǎn)介

VxWorks是美國風(fēng)河公司(Wind River)設(shè)計(jì)開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng),VxWorks是其嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分,Tornado是其主機(jī)的集成開發(fā)環(huán)境。因?yàn)閂xWorks具有較高的可靠性,使其被廣泛應(yīng)用于軍工領(lǐng)域。20世紀(jì)90年代,VxWorks進(jìn)入國內(nèi)市場(chǎng),受到了用戶的好評(píng)。

VxWorks提供了類似UNIX的直接I/O、POSIX接口異步I/O等,并且提供了多種格式的文件系統(tǒng),包括dosFs、rtllFs、rawFs、tapeFs、cdromFs和TSFs等,適用于不同的應(yīng)用環(huán)境,通常將dosFs作為目標(biāo)機(jī)的文件系統(tǒng)。

2 FTP的實(shí)現(xiàn)方法

VxWorks操作系統(tǒng)下實(shí)現(xiàn)文件傳輸,在工程實(shí)踐中,經(jīng)常用到的有MS_DOS和FTP。其中,在基于MS_DOS下傳輸文件時(shí),在實(shí)踐中,經(jīng)常定義一些文件名大于8個(gè)字符的文件,這時(shí),MS_DOS就不能顯示文件全名,就會(huì)使得文件傳輸失敗,同時(shí),受移動(dòng)存儲(chǔ)介質(zhì)的約束(VxWorks有沒有加載USB驅(qū)動(dòng)、能不能識(shí)別U盤啟動(dòng)盤等約束),存在工作效率低等缺點(diǎn)。FTP文件傳輸系統(tǒng)則是在VxWorks操作系統(tǒng)下建立的文件傳輸服務(wù)器任務(wù),只需要在VxWorks操作系統(tǒng)下特定網(wǎng)卡上指定特定的IP地址,就可以通過客戶端實(shí)時(shí)傳輸目標(biāo)計(jì)算機(jī)上的文件,再通過上位機(jī)訪問、修改和傳輸文件等,輕松實(shí)現(xiàn)2臺(tái)計(jì)算機(jī)之間的文件傳輸。

在工程實(shí)際運(yùn)行過程中,在所需工程中加入已經(jīng)編譯好文件傳輸服務(wù)器任務(wù)的ftp.c文件,在軟件主程序函數(shù)(或相關(guān)初始化函數(shù))中添加與上位機(jī)通訊的網(wǎng)卡和IP地址,如果目標(biāo)計(jì)算機(jī)中有多塊網(wǎng)卡,一般使用主板集成的第一塊網(wǎng)卡,例如ipAttach(0,"fei")(根據(jù)目標(biāo)機(jī)bootrom和主板網(wǎng)卡芯片使用),ifAddrSet("fei0","127.12.12.1");然后加入FTP入口函數(shù),例如ftpStart("/ata0a")。

完成相關(guān)工作后,編譯并下載運(yùn)行該模塊就可實(shí)現(xiàn)FTP通訊,將上位機(jī)IP地址設(shè)置成與目標(biāo)機(jī)同一網(wǎng)段的IP地址,例如127.12.12.2.打開目標(biāo)計(jì)算機(jī)和上位機(jī),在網(wǎng)絡(luò)連接正常的狀態(tài)下,便可以通過上位機(jī)運(yùn)行ftp 127.12.12.1命令,使FTP訪問雷達(dá)計(jì)算機(jī)。利用ftp基本命令就可輕松實(shí)現(xiàn)2臺(tái)計(jì)算機(jī)間的信息交換,例如get,send,ls等基本命令。

3 程序?qū)嵗驼f明

下面簡(jiǎn)單介紹ftp.c文件,包含頭文件有:#include "vxWorks.h""taskLib.h""lstLib.h""sys/socket.h""netinet/in.h""netinet/tcp.h""sockLib.h""logLib.h""loginLib.h""fioLib.h""dosFsLib.h"和"net/protosw.h"等,主要變量BOOL vxftStartDone、vxftActive,int vxftServerSock、vxftMaxClients、vxftTaskId,LIST vxftSessionList,SEM_ID vxftMutexSem、vxftSignalSem等;包含的主要函數(shù)有ftpStart(),ftpStop(),vxftInit()等。

STATUS ftpStart(char * root)/*FTP服務(wù)函數(shù)入口*/

{

STATUS status;

char * rootDir;

rootDir = root;

status = vxftInit(rootDir);

出錯(cuò)處理,返回錯(cuò)誤值;

vxftStartDone = TRUE;

return OK;

}

STATUS ftpStop(void)/* FTP服務(wù)停止 */

{

STATUS status;

status = vxftDelete();/*任務(wù)刪除*/

出錯(cuò)處理,返回錯(cuò)誤值;

vxftStartDone = FALSE;

return OK;

}

STATUS vxftInit( char * root ) /*FTP任務(wù)函數(shù)*/

{

int stackSize, on = 1;

struct sockaddr_in ctrlAddr;

stackSize = 0;

/*建立FTP 控制 socket.*/

vxftServerSock = socket (AF_INET, SOCK_STREAM, 0);

socket錯(cuò)誤處理,返回錯(cuò)誤值;

/*客戶端聯(lián)接信號(hào)量等數(shù)據(jù)的建立*/

lstInit (&vxftSessionList);

vxftMutexSem=semMCreate(SEM_Q_FIFO | SEM_DELETE_SAFE);

vxftSignalSem = semBCreate (SEM_Q_FIFO, SEM_EMPTY);

…… 信號(hào)量出錯(cuò)處理,返回錯(cuò)誤值;

/*客戶端數(shù)據(jù)連接請(qǐng)求.*/

ctrlAddr.sin_family = AF_INET;

ctrlAddr.sin_addr.s_addr = INADDR_ANY;

ctrlAddr.sin_port = htons (vxftDefaultPort);

if (setsockopt (vxftServerSock, SOL_SOCKET, SO_REUSEADDR,

(char *) &on, sizeof (on)) < 0)

{

…… setsockopt錯(cuò)誤處理,返回錯(cuò)誤值;

}

if (bind vxftServerSock, (struct sockaddr *) &ctrlAddr,

sizeof (ctrlAddr)) < 0)

{

…… bind錯(cuò)誤處理,返回錯(cuò)誤值;

}

if (vxftMaxClients > (VXFT_TASK_MASK_SIZE * 32))

{

vxftMaxClients = VXFT_TASK_MASK_SIZE * 32;

}

if (listen (vxftServerSock, vxftMaxClients) < 0)

{

listen錯(cuò)誤處理,返回錯(cuò)誤值;

}

/*創(chuàng)建FTP服務(wù)任務(wù)*/

vxftTaskId=taskSpawn ("vxftTask",vxftTaskPriority,vxftTaskOptions,

vxftWorkTaskStackSize,(FUNCPTR) vxftTask,

(int)root,0,0,0,0,0,0,0,0,0);

任務(wù)創(chuàng)建失敗處理;

vxftActive = TRUE;

rebootHookAdd (vxftDelete);

return (OK);

}

4 結(jié)束語

本文從應(yīng)用程序的角度出發(fā),介紹了在Vxworks系統(tǒng)中嵌入FTP的方法。該方法已經(jīng)應(yīng)用于實(shí)際軟件設(shè)計(jì)中,而FTP的使用可以讓運(yùn)行在Windows系統(tǒng)下的上位機(jī)輕松訪問Vxworks系統(tǒng),實(shí)現(xiàn)2個(gè)系統(tǒng)間的網(wǎng)絡(luò)數(shù)據(jù)交換,為分析處理數(shù)據(jù)文件提供了便利。

〔編輯:白潔〕

主站蜘蛛池模板: 香蕉网久久| 国产美女精品一区二区| 国产一区二区三区免费观看| 日韩精品亚洲精品第一页| 日韩在线观看网站| 色婷婷色丁香| 黄色国产在线| 欧美a级在线| 亚洲欧美日韩中文字幕一区二区三区 | 欧美日韩精品一区二区视频| 超碰精品无码一区二区| 伊人久久精品无码麻豆精品| 国产精品九九视频| 欧美人与动牲交a欧美精品| 亚洲国产天堂在线观看| 亚洲AV无码一区二区三区牲色| 国产99在线观看| 亚洲最新在线| 色综合国产| 亚洲乱码在线视频| 2021最新国产精品网站| 国产一级裸网站| 无码在线激情片| 国产在线观看成人91| 97精品伊人久久大香线蕉| av午夜福利一片免费看| 美女潮喷出白浆在线观看视频| 欧美成人免费| 欧美另类精品一区二区三区| 激情综合激情| 久久久91人妻无码精品蜜桃HD| 国产成人区在线观看视频| 日韩一区二区三免费高清| 国产免费久久精品44| 免费看一级毛片波多结衣| 97se亚洲综合在线天天| 亚洲av中文无码乱人伦在线r| 亚洲成肉网| 亚洲av无码牛牛影视在线二区| 丁香五月亚洲综合在线 | 日韩a在线观看免费观看| 欧美日韩第二页| 亚洲无码在线午夜电影| 老司机精品一区在线视频| 亚洲国产第一区二区香蕉| 欧美另类视频一区二区三区| 中文字幕亚洲第一| 欧美中文字幕在线播放| 欧美第一页在线| 亚洲丝袜中文字幕| 丰满少妇αⅴ无码区| 色综合a怡红院怡红院首页| 在线国产欧美| 米奇精品一区二区三区| 国产凹凸一区在线观看视频| 91成人在线观看视频| 欧美色图第一页| 日本少妇又色又爽又高潮| 色丁丁毛片在线观看| 欧美.成人.综合在线| 无码精品福利一区二区三区| 再看日本中文字幕在线观看| 国产精品尤物铁牛tv| 国产你懂得| 国产一区二区三区在线观看视频 | 三级视频中文字幕| 中文字幕无码av专区久久| 欧美日韩北条麻妃一区二区| 91精品网站| 国产高清色视频免费看的网址| 精品黑人一区二区三区| 亚洲中文字幕23页在线| 毛片在线区| 国产乱子伦精品视频| 欧美在线三级| 国产一在线| 国产成人高清在线精品| 成人久久精品一区二区三区| 欧美国产三级| 激情综合图区| 毛片a级毛片免费观看免下载| 国产91丝袜|