0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术ARM9工控主板文件传送介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2019-11-13 09:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

文件传送协议(FTP — File Transfer Protocol)是TCP/IP提供的标准机制,用来从一台主机将文件复制到另一台主机。从一台计算机向另一台计算机传送文件是在联网或互联网环境中常见的任务。

英创ARM9系列工控主板预装正版WinCE5.0操作系统,WinCE内核提供了FTP Server应用程序,这为通过FTP实现文件传送提供了方便,在本公司网站文章《ARM9工控主板WinCE应用程序的远程FTP自动更新》中介绍的方案,就是利用WinCE内核提供的FTP Server实现的应用程序远程更新。但在很多应用场合,是工控主板作为本地FTP客户端与远端FTP服务器交换文件,为此需要程序员自己编写在ARM9主板上运行的FTP客户端的程序。对于WinCE操作系统,Microsoft提供了如FtpGetFile()、FtpPutFile()等用于文件传送的函数,程序员利用这些函数,可以方便的编写出FTP客户端程序。但如果网络环境复杂或采用GPRS网络,由于GPRS网络原因,网络连接很容易中断,如果每次连接中断,整个文件都重新传送,一个稍大的文件基本上不能成功传送,此时就要求FTP文件传送具有断点续传功能。

断点续传是指在文件的传送过程中,因为网络或其它原因至使传送过程中断,当再次传送这个文件时,将从已传送的部份开始,继续未完成部份传送,不用从头对整个文件进行传送,这样可以节省时间,节约网络流量,提高文件传送速度。对于在GPRS网络上应用的FTP,断点续传功能显得尤为重要,但Microsoft提供的FTP API中,却没有支持断点续传的函数,为此,英创公司针对断点续传这一要求,直接采用SOCKET API,封装了一个支持断点续传的FTP客户端静态库EM_FTPClient.LIB,下面对这个库函的API函数做详细说明。

支持断点续传的FTP库函数说明:

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

功能描述:登录到FTP服务器

输入参数 lpszHostIP:服务器IP

lpszUserName:用户名

lpszPassword:用户密码(当用户名用与用户密码为空时,将匿名登录)

nTimeOut:超时设置 1000(mS)《=nTimeOut《=60000(mS)

返回值 = TRUE:登录FTP服务器成功

FALSE:登录FTP服务器失败

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

功能描述:设置远端FTP服务器当前目录

输入参数 lpszRemoteDir:服务器目录

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

FALSE:目录更改失败

(3)bool ListAll( FILELIST* fileList );

功能描述:获取FTP服务器当前目录下的所有文件的列表

输入参数 fileList:接收文件列表的结构体

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

= FALSE:获致文件列表失败

文件列表数据结构定义如下:

typedef struct

{

int nFileNum; //当前目录文件个数

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

//(注:当nFileNum = 0 时,此数组中的内容无效)

}FILELIST;

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

功能描述:从FTP服务器上下载指定文件(如果下载的文件已存在于本地当前目录下,将覆盖下载)

输入参数 lpszLocalFile:存储为本地文件名

lpszRemoteFile:下载的指定文件

nMode:传输模式 =0: 二进制模式 =1: 文本模式

bResume:断点续传标志

=TRUE:继点续传

(程序将挂断FTP连接,重新执行Logon(),ChangeDir(),然后下载)

=FALSE: 正常下载

返回值 = TRUE:开始下载

FALSE:开始下载失败

(5)bool DelFile( LPCTSTR lpszFileName)

功能描述:删除远端FTP服务器当前目录下指定文件

输入参数 lpszFileName:指定要删除的文件

返回值 = TRUE:删除成功

FALSE:删除失败

(6)bool Logoff( );

功能描述:注销与远端FTP服务器的连接

(7)void Abort( );

功能描述:中断与远端FTP服务器的连接

(8)FTPSTATUS* GetStatus( );

功能描述:获取当前文件的下载状态

返回值: 指向当前下载文件状态数据结构的指针

文件下载状态数据结构定义如下:

typedef struct

{

int nSucceed; //上传/下载是否成功

//=0:文件正在传输,=1文件传输成功,=-1文件传输失败

int nErrCnt; //重传次数

int nMode; //上传=1,下载=2

int nStatus; // FTP状态

DWORD dwFileSize; //文件字节数

DWORD dwCompleteSize; // 已完成字节数

}FTPSTATUS;

(9)int GetErrorCode( );

功能描述:获取最后一次错误的错误码

返回值:错误码(错误码的定义请参看EM_FTPClient.H)

补充说明:

1、在调用GetFile()函数时,如果将bResum设置为TRUE,程序将自动执行以下步骤:

↓调用Abort( )中断与FTP服务器的连接

↓调用Logon( )登录到FTP服务器

↓调用ChangeDir( )设置FTP服务器当前目录

↓从已完成传送的部份继续下载

其中Logon()和ChangeDir( )的参数是最后一次调用Logon()和ChangeDir( )传入的值。

2、调用GetFile()函数返回为TRUE时,并不是表示文件下载成功,只表明文件开始下载。主程序应该通过判断FTPSTATUS数据结构中的nSucceed值来确认下载是否成功。

3、现在的FTP服务器普遍支持PASV模式,因此本FTP Client仅支持PASV模式数据传送。

4、英创公司提供相应的测试例程,感兴趣的客户可向英创索要相关代码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36947
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ARM9工控主板支持断点续传的FTP文件传送

    文件传送协议(FTPFile Transfer Protocol)是TCP/IP提供的标准机制,用来从一台主机将文件复制到另一台主机。从一台计算机向另一台计算机传送
    发表于 02-19 11:02 40次下载

    ARM9工控主板应用程序自动加载实现

    ARM9工控主板有两种工作模式:调试模式和运行模式。调试模式是指开机以后系统处于调试状态,此时用户可以通过eVC的远程调试工具或微软的A
    的头像 发表于 10-08 17:13 2336次阅读

    信息技术VS2005调试ARM9核心板简介

    公司自2007年开始陆续推出一系列以ARM9 CPU为核心的嵌入式主板(如EM9000、EM9260),这些高性能的工控
    的头像 发表于 10-31 15:03 2382次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>VS2005调试<b class='flag-5'>ARM9</b>核心板简介

    信息技术ARM9工控主板WinCE应用程序远程控制应用

    公司推出的ARM9嵌入式工控主板产品系列,均预装了正版的WinCE5.0操作系统。微软的WINCE实时多任务操作系统是嵌入式领域的主流操
    的头像 发表于 11-04 09:28 2222次阅读

    信息技术ARM9工控主板内嵌AD概述

    公司推出的ARM9 嵌入式工控主板产品系列,均预装了正版WinCE5.0 操作系统。
    的头像 发表于 11-04 09:43 3391次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>内嵌AD概述

    信息技术ARM9工控板在远程监控领域的应用

    ARM9工控主板的数据采集功能通常采用板上的GPIO实现数字输入输出、通过精简ISA总线扩展相应的AD或DA实现模拟数据的输入输出。在
    的头像 发表于 11-12 10:04 2361次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>板在远程监控领域的应用

    信息技术ARM9工控板串口设备的COM组件应用

    公司的ARM9工控主板产品均预装了Windows CE5.0操作系统,支持包括EVC、C#、VB、LabView等多种开发工具。
    的头像 发表于 11-05 10:07 2327次阅读

    信息技术ARM9工控主板远程操作自动更新介绍

    库EM_FTPClient.LIB,客户利用这个库可以方便的编写出适合自己应用的FTP客户端应用程序,在《ARM9工控主板支持断点续传的FTP文件
    的头像 发表于 11-13 09:26 1903次阅读

    信息技术ARM9工控板远程抓拍图像应用介绍

    ARM9工控主板功能齐全、体积小巧、性能稳定、超低价格的嵌入式主板产品。
    的头像 发表于 11-13 09:41 2681次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b>板远程抓拍图像应用<b class='flag-5'>介绍</b>

    信息技术工控主板EM9360的GPIO介绍

    公司的ARM9工控主板产品 EM9360是一款预装WinCE操作系统,以多种通讯接口、支持各种扩展为其
    的头像 发表于 11-14 09:34 3029次阅读

    信息技术工控主板的复位管理介绍

     公司的工控主板是基于ARM9 CPU、预装正版WinCE的嵌入式主板产品。作为嵌入式应用,
    的头像 发表于 11-14 10:03 2184次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>的复位管理<b class='flag-5'>介绍</b>

    信息技术工控主板内核更新与版本管理介绍

    公司的ARM9工控主板系列产品均预装了正版的Window CE操作系统,支持客户采用强大的微软开发工具直接开发应用程序。
    的头像 发表于 11-15 09:24 1759次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>内核更新与版本管理<b class='flag-5'>介绍</b>

    信息技术EM9000工控主板的版本信息管理概述

    EM9000是公司极具特色的一款ARM9工控主板。经过长时间的完善,现系统已完全稳定。
    的头像 发表于 11-17 11:23 2245次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b>EM9000<b class='flag-5'>工控</b><b class='flag-5'>主板</b>的版本<b class='flag-5'>信息</b>管理概述

    信息技术ARM9工控主板扩展矩阵键盘的方法

    键盘输入,仅需要一些数字键或功能键(比如方向键),此时可通过外扩矩阵键盘来实现。 1、矩阵键盘扩展硬件电路 ARM9工控主板可通过GPI
    的头像 发表于 01-14 11:05 2162次阅读
    <b class='flag-5'>英</b><b class='flag-5'>创</b><b class='flag-5'>信息技术</b><b class='flag-5'>ARM9</b><b class='flag-5'>工控</b><b class='flag-5'>主板</b>扩展矩阵键盘的方法

    信息技术ARM9工控主板的SMS短信息应用介绍

    的应用越来越广泛,其中主要以GPRS数据通讯及SMS短信息方式为主。GPRS数据通讯是以TCP/IP方式进行通讯,GPRS模块发送SMS短信,是通过串口发送AT指令来实现。 公司基于ARM
    的头像 发表于 01-14 11:45 1853次阅读