0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ARM9工控主板文件傳送介紹

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-11-13 09:22 ? 次閱讀

文件傳送協(xié)議(FTP — File Transfer Protocol)是TCP/IP提供的標(biāo)準(zhǔn)機(jī)制,用來(lái)從一臺(tái)主機(jī)將文件復(fù)制到另一臺(tái)主機(jī)。從一臺(tái)計(jì)算機(jī)向另一臺(tái)計(jì)算機(jī)傳送文件是在聯(lián)網(wǎng)或互聯(lián)網(wǎng)環(huán)境中常見(jiàn)的任務(wù)。

英創(chuàng)ARM9系列工控主板預(yù)裝正版WinCE5.0操作系統(tǒng),WinCE內(nèi)核提供了FTP Server應(yīng)用程序,這為通過(guò)FTP實(shí)現(xiàn)文件傳送提供了方便,在本公司網(wǎng)站文章《ARM9工控主板WinCE應(yīng)用程序的遠(yuǎn)程FTP自動(dòng)更新》中介紹的方案,就是利用WinCE內(nèi)核提供的FTP Server實(shí)現(xiàn)的應(yīng)用程序遠(yuǎn)程更新。但在很多應(yīng)用場(chǎng)合,是工控主板作為本地FTP客戶端與遠(yuǎn)端FTP服務(wù)器交換文件,為此需要程序員自己編寫(xiě)在ARM9主板上運(yùn)行的FTP客戶端的程序。對(duì)于WinCE操作系統(tǒng),Microsoft提供了如FtpGetFile()、FtpPutFile()等用于文件傳送的函數(shù),程序員利用這些函數(shù),可以方便的編寫(xiě)出FTP客戶端程序。但如果網(wǎng)絡(luò)環(huán)境復(fù)雜或采用GPRS網(wǎng)絡(luò),由于GPRS網(wǎng)絡(luò)原因,網(wǎng)絡(luò)連接很容易中斷,如果每次連接中斷,整個(gè)文件都重新傳送,一個(gè)稍大的文件基本上不能成功傳送,此時(shí)就要求FTP文件傳送具有斷點(diǎn)續(xù)傳功能。

斷點(diǎn)續(xù)傳是指在文件的傳送過(guò)程中,因?yàn)榫W(wǎng)絡(luò)或其它原因至使傳送過(guò)程中斷,當(dāng)再次傳送這個(gè)文件時(shí),將從已傳送的部份開(kāi)始,繼續(xù)未完成部份傳送,不用從頭對(duì)整個(gè)文件進(jìn)行傳送,這樣可以節(jié)省時(shí)間,節(jié)約網(wǎng)絡(luò)流量,提高文件傳送速度。對(duì)于在GPRS網(wǎng)絡(luò)上應(yīng)用的FTP,斷點(diǎn)續(xù)傳功能顯得尤為重要,但Microsoft提供的FTP API中,卻沒(méi)有支持?jǐn)帱c(diǎn)續(xù)傳的函數(shù),為此,英創(chuàng)公司針對(duì)斷點(diǎn)續(xù)傳這一要求,直接采用SOCKET API,封裝了一個(gè)支持?jǐn)帱c(diǎn)續(xù)傳的FTP客戶端靜態(tài)庫(kù)EM_FTPClient.LIB,下面對(duì)這個(gè)庫(kù)函的API函數(shù)做詳細(xì)說(shuō)明。

支持?jǐn)帱c(diǎn)續(xù)傳的FTP庫(kù)函數(shù)說(shuō)明:

(1)bool Logon( LPCTSTR lpszHostIP, LPCTSTR lpszUserName=_T(‘’), LPCTSTR lpszPassword=_T(‘’), int nTimeOut=5000 );

功能描述:登錄到FTP服務(wù)器

輸入參數(shù) lpszHostIP:服務(wù)器IP

lpszUserName:用戶名

lpszPassword:用戶密碼(當(dāng)用戶名用與用戶密碼為空時(shí),將匿名登錄)

nTimeOut:超時(shí)設(shè)置 1000(mS)《=nTimeOut《=60000(mS)

返回值 = TRUE:登錄FTP服務(wù)器成功

FALSE:登錄FTP服務(wù)器失敗

(2)bool ChangeDir( LPCTSTR lpszRemoteDir=_T(‘\\’) );

功能描述:設(shè)置遠(yuǎn)端FTP服務(wù)器當(dāng)前目錄

輸入?yún)?shù) lpszRemoteDir:服務(wù)器目錄

返回值 = TRUE:目錄更改成功

FALSE:目錄更改失敗

(3)bool ListAll( FILELIST* fileList );

功能描述:獲取FTP服務(wù)器當(dāng)前目錄下的所有文件的列表

輸入?yún)?shù) fileList:接收文件列表的結(jié)構(gòu)體

返回值 = TRUE:獲取文件列表成功

= FALSE:獲致文件列表失敗

文件列表數(shù)據(jù)結(jié)構(gòu)定義如下:

typedef struct

{

int nFileNum; //當(dāng)前目錄文件個(gè)數(shù)

TCHAR FileList[MAXFILENUM][MAX_PATH]; //文件名列表

//(注:當(dāng)nFileNum = 0 時(shí),此數(shù)組中的內(nèi)容無(wú)效)

}FILELIST;

(4)bool GetFile( LPCTSTR lpszLocalFile, LPCTSTR lpszRemoteFile, int nMode = 0, bool bResume=FALSE );

功能描述:從FTP服務(wù)器上下載指定文件(如果下載的文件已存在于本地當(dāng)前目錄下,將覆蓋下載)

輸入?yún)?shù) lpszLocalFile:存儲(chǔ)為本地文件名

lpszRemoteFile:下載的指定文件

nMode:傳輸模式 =0: 二進(jìn)制模式 =1: 文本模式

bResume:斷點(diǎn)續(xù)傳標(biāo)志

=TRUE:繼點(diǎn)續(xù)傳

(程序?qū)鞌郌TP連接,重新執(zhí)行Logon(),ChangeDir(),然后下載)

=FALSE: 正常下載

返回值 = TRUE:開(kāi)始下載

FALSE:開(kāi)始下載失敗

(5)bool DelFile( LPCTSTR lpszFileName)

功能描述:刪除遠(yuǎn)端FTP服務(wù)器當(dāng)前目錄下指定文件

輸入?yún)?shù) lpszFileName:指定要?jiǎng)h除的文件

返回值 = TRUE:刪除成功

FALSE:刪除失敗

(6)bool Logoff( );

功能描述:注銷與遠(yuǎn)端FTP服務(wù)器的連接

(7)void Abort( );

功能描述:中斷與遠(yuǎn)端FTP服務(wù)器的連接

(8)FTPSTATUS* GetStatus( );

功能描述:獲取當(dāng)前文件的下載狀態(tài)

返回值: 指向當(dāng)前下載文件狀態(tài)數(shù)據(jù)結(jié)構(gòu)的指針

文件下載狀態(tài)數(shù)據(jù)結(jié)構(gòu)定義如下:

typedef struct

{

int nSucceed; //上傳/下載是否成功

//=0:文件正在傳輸,=1文件傳輸成功,=-1文件傳輸失敗

int nErrCnt; //重傳次數(shù)

int nMode; //上傳=1,下載=2

int nStatus; // FTP狀態(tài)

DWORD dwFileSize; //文件字節(jié)數(shù)

DWORD dwCompleteSize; // 已完成字節(jié)數(shù)

}FTPSTATUS;

(9)int GetErrorCode( );

功能描述:獲取最后一次錯(cuò)誤的錯(cuò)誤碼

返回值:錯(cuò)誤碼(錯(cuò)誤碼的定義請(qǐng)參看EM_FTPClient.H)

補(bǔ)充說(shuō)明:

1、在調(diào)用GetFile()函數(shù)時(shí),如果將bResum設(shè)置為T(mén)RUE,程序?qū)⒆詣?dòng)執(zhí)行以下步驟:

↓調(diào)用Abort( )中斷與FTP服務(wù)器的連接

↓調(diào)用Logon( )登錄到FTP服務(wù)器

↓調(diào)用ChangeDir( )設(shè)置FTP服務(wù)器當(dāng)前目錄

↓從已完成傳送的部份繼續(xù)下載

其中Logon()和ChangeDir( )的參數(shù)是最后一次調(diào)用Logon()和ChangeDir( )傳入的值。

2、調(diào)用GetFile()函數(shù)返回為T(mén)RUE時(shí),并不是表示文件下載成功,只表明文件開(kāi)始下載。主程序應(yīng)該通過(guò)判斷FTPSTATUS數(shù)據(jù)結(jié)構(gòu)中的nSucceed值來(lái)確認(rèn)下載是否成功。

3、現(xiàn)在的FTP服務(wù)器普遍支持PASV模式,因此本FTP Client僅支持PASV模式數(shù)據(jù)傳送。

4、英創(chuàng)公司提供相應(yīng)的測(cè)試?yán)?,感興趣的客戶可向英創(chuàng)索要相關(guān)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35341
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM9工控主板支持?jǐn)帱c(diǎn)續(xù)傳的FTP文件傳送

    文件傳送協(xié)議(FTPFile Transfer Protocol)是TCP/IP提供的標(biāo)準(zhǔn)機(jī)制,用來(lái)從一臺(tái)主機(jī)將文件復(fù)制到另一臺(tái)主機(jī)。從一臺(tái)計(jì)算機(jī)向另一臺(tái)計(jì)算機(jī)傳送
    發(fā)表于 02-19 11:02 ?40次下載

    創(chuàng)ARM9工控主板應(yīng)用程序自動(dòng)加載實(shí)現(xiàn)

    創(chuàng)ARM9工控主板有兩種工作模式:調(diào)試模式和運(yùn)行模式。調(diào)試模式是指開(kāi)機(jī)以后系統(tǒng)處于調(diào)試狀態(tài),此時(shí)用戶可以通過(guò)eVC的遠(yuǎn)程調(diào)試工具或微軟的A
    的頭像 發(fā)表于 10-08 17:13 ?1783次閱讀

    創(chuàng)信息技術(shù)VS2005調(diào)試ARM9核心板簡(jiǎn)介

    創(chuàng)公司自2007年開(kāi)始陸續(xù)推出一系列以ARM9 CPU為核心的嵌入式主板(如EM9000、EM9260),這些高性能的工控
    的頭像 發(fā)表于 10-31 15:03 ?1887次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b>VS2005調(diào)試<b class='flag-5'>ARM9</b>核心板簡(jiǎn)介

    創(chuàng)信息技術(shù)ARM9工控主板WinCE應(yīng)用程序遠(yuǎn)程控制應(yīng)用

    創(chuàng)公司推出的ARM9嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版的WinCE5.0操作系統(tǒng)。微軟的WINCE實(shí)時(shí)多任務(wù)操作系統(tǒng)是嵌入式領(lǐng)域的主流操
    的頭像 發(fā)表于 11-04 09:28 ?1756次閱讀

    創(chuàng)信息技術(shù)ARM9工控主板內(nèi)嵌AD概述

    創(chuàng)公司推出的ARM9 嵌入式工控主板產(chǎn)品系列,均預(yù)裝了正版WinCE5.0 操作系統(tǒng)。
    的頭像 發(fā)表于 11-04 09:43 ?2646次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>內(nèi)嵌AD概述

    創(chuàng)信息技術(shù)ARM9工控板在遠(yuǎn)程監(jiān)控領(lǐng)域的應(yīng)用

    創(chuàng)ARM9工控主板的數(shù)據(jù)采集功能通常采用板上的GPIO實(shí)現(xiàn)數(shù)字輸入輸出、通過(guò)精簡(jiǎn)ISA總線擴(kuò)展相應(yīng)的AD或DA實(shí)現(xiàn)模擬數(shù)據(jù)的輸入輸出。在
    的頭像 發(fā)表于 11-12 10:04 ?1791次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>板在遠(yuǎn)程監(jiān)控領(lǐng)域的應(yīng)用

    創(chuàng)信息技術(shù)ARM9工控板串口設(shè)備的COM組件應(yīng)用

    創(chuàng)公司的ARM9工控主板產(chǎn)品均預(yù)裝了Windows CE5.0操作系統(tǒng),支持包括EVC、C#、VB、LabView等多種開(kāi)發(fā)工具。
    的頭像 發(fā)表于 11-05 10:07 ?1762次閱讀

    創(chuàng)信息技術(shù)ARM9工控主板遠(yuǎn)程操作自動(dòng)更新介紹

    庫(kù)EM_FTPClient.LIB,客戶利用這個(gè)庫(kù)可以方便的編寫(xiě)出適合自己應(yīng)用的FTP客戶端應(yīng)用程序,在《ARM9工控主板支持?jǐn)帱c(diǎn)續(xù)傳的FTP文件
    的頭像 發(fā)表于 11-13 09:26 ?1371次閱讀

    創(chuàng)信息技術(shù)ARM9工控板遠(yuǎn)程抓拍圖像應(yīng)用介紹

    創(chuàng)ARM9工控主板功能齊全、體積小巧、性能穩(wěn)定、超低價(jià)格的嵌入式主板產(chǎn)品。
    的頭像 發(fā)表于 11-13 09:41 ?2000次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>板遠(yuǎn)程抓拍圖像應(yīng)用<b class='flag-5'>介紹</b>

    創(chuàng)信息技術(shù)工控主板EM9360的GPIO介紹

    創(chuàng)公司的ARM9工控主板產(chǎn)品 EM9360是一款預(yù)裝WinCE操作系統(tǒng),以多種通訊接口、支持各種擴(kuò)展為其
    的頭像 發(fā)表于 11-14 09:34 ?2404次閱讀

    創(chuàng)信息技術(shù)工控主板的復(fù)位管理介紹

     創(chuàng)公司的工控主板是基于ARM9 CPU、預(yù)裝正版WinCE的嵌入式主板產(chǎn)品。作為嵌入式應(yīng)用,
    的頭像 發(fā)表于 11-14 10:03 ?1673次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>的復(fù)位管理<b class='flag-5'>介紹</b>

    創(chuàng)信息技術(shù)工控主板內(nèi)核更新與版本管理介紹

    創(chuàng)公司的ARM9工控主板系列產(chǎn)品均預(yù)裝了正版的Window CE操作系統(tǒng),支持客戶采用強(qiáng)大的微軟開(kāi)發(fā)工具直接開(kāi)發(fā)應(yīng)用程序。
    的頭像 發(fā)表于 11-15 09:24 ?1321次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>內(nèi)核更新與版本管理<b class='flag-5'>介紹</b>

    創(chuàng)信息技術(shù)EM9000工控主板的版本信息管理概述

    EM9000是創(chuàng)公司極具特色的一款ARM9工控主板。經(jīng)過(guò)長(zhǎng)時(shí)間的完善,現(xiàn)系統(tǒng)已完全穩(wěn)定。
    的頭像 發(fā)表于 11-17 11:23 ?1738次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b>EM9000<b class='flag-5'>工控</b><b class='flag-5'>主板</b>的版本<b class='flag-5'>信息</b>管理概述

    創(chuàng)信息技術(shù)ARM9工控主板擴(kuò)展矩陣鍵盤(pán)的方法

    鍵盤(pán)輸入,僅需要一些數(shù)字鍵或功能鍵(比如方向鍵),此時(shí)可通過(guò)外擴(kuò)矩陣鍵盤(pán)來(lái)實(shí)現(xiàn)。 1、矩陣鍵盤(pán)擴(kuò)展硬件電路 創(chuàng)ARM9工控主板可通過(guò)GPI
    的頭像 發(fā)表于 01-14 11:05 ?1662次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>擴(kuò)展矩陣鍵盤(pán)的方法

    創(chuàng)信息技術(shù)ARM9工控主板的SMS短信息應(yīng)用介紹

    的應(yīng)用越來(lái)越廣泛,其中主要以GPRS數(shù)據(jù)通訊及SMS短信息方式為主。GPRS數(shù)據(jù)通訊是以TCP/IP方式進(jìn)行通訊,GPRS模塊發(fā)送SMS短信,是通過(guò)串口發(fā)送AT指令來(lái)實(shí)現(xiàn)。 創(chuàng)公司基于ARM
    的頭像 發(fā)表于 01-14 11:45 ?1348次閱讀