首页> 中国专利> FTP传输系统及其FTP功能调用方法

FTP传输系统及其FTP功能调用方法

摘要

本发明涉及通信技术。本发明解决了现有FTP功能在工作过程中出现死机情况也会导致调用FTP的模块死机的问题,提供了一种FTP传输系统及其FTP功能调用方法,其技术方案可概括为:FTP传输系统,包括FTP客户端主函数模块、调用FTP功能的模块、FTP服务器端及FTP数据转发模块。本发明的有益效果是:通过FTP数据转发模块将FTP服务器端与调用FTP功能的模块隔离开来,若在FTP数据转发的过程中出现了连接错误,也不会导致调用FTP功能的模块出现问题。适用于FTP传输系统。

著录项

  • 公开/公告号CN103152372A

    专利类型发明专利

  • 公开/公告日2013-06-12

    原文格式PDF

  • 申请/专利权人 迈普通信技术股份有限公司;

    申请/专利号CN201110403344.3

  • 发明设计人 严林;

    申请日2011-12-07

  • 分类号

  • 代理机构成都虹桥专利事务所(普通合伙);

  • 代理人李顺德

  • 地址 610041 四川省成都市高新区九兴大道16号迈普大厦

  • 入库时间 2024-02-19 19:33:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-14

    授权

    授权

  • 2013-07-17

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20111207

    实质审查的生效

  • 2013-06-12

    公开

    公开

说明书

技术领域

本发明涉及通信技术,特别涉及TCP/IP协议栈中通用文件传输协议FTP(文件传输协议) 客户端的技术。

背景技术

在FTP中有一个关键点就是它不像其他应用程序使用一个TCP连接,而是使用了两个TCP 连接:控制TCP连接和数据TCP连接。控制TCP连接是主TCP连接,用于传输控制信息,在 整个FTP会话中都需要保持;数据TCP连接是当每次有数据传输时才进行创建。

其他模块调用FTP客户端主函数模块与FTP服务器端进行协商并建立起控制TCP连接, 如果有必要还会建立一条数据TCP连接。连接建立后FTP功能的实现和调用FTP功能的模块 在同一个任务里与FTP服务器端进行通信。这样,如果FTP在工作过程中出现死机情况,也 会导致调用FTP的模块死机。特别是在shell上通过FTP命令进行文件传输时,如果连接发 生错误,容易导致shell不可用,现有技术中FTP调用框架图参见图1。

发明内容

本发明的目的就是克服目前FTP功能在工作过程中出现死机情况也会导致调用FTP的模 块死机的缺点,提供一种FTP传输系统及其FTP功能调用方法。

本发明解决其技术问题,采用的技术方案是,FTP传输系统,包括FTP客户端主函数模 块、调用FTP功能的模块及FTP服务器端,其特征在于,还包括FTP数据转发模块;

所述调用FTP功能的模块,用于通知FTP客户端主函数模块建立连接,连接建立后通过 FTP数据转发模块与FTP服务器端进行通讯;

所述FTP客户端主函数模块,用于向FTP数据转发模块发送FTP数据转发主任务,另根 据调用FTP功能的模块的通知,在调用FTP功能的模块与FTP数据转发模块之间建立连接及 控制FTP数据转发模块与FTP服务器端建立连接。

所述FTP数据转发模块,用于根据FTP客户端主函数模块的控制建立与FTP服务器端之 间的连接,并根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP功能的模块之 间的通讯数据。

具体的,所述FTP客户端主函数模块在调用FTP功能的模块与FTP数据转发模块之间建 立连接的步骤是:先在调用FTP功能的模块与FTP数据转发模块之间建立控制连接,再根据 调用FTP功能的模块的要求决定是否在在调用FTP功能的模块与FTP数据转发模块之间建立 数据连接。

进一步的,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。

具体的,所述FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端 之间的连接的步骤是:先在FTP数据转发模块与FTP服务器端之间建立控制连接,再根据调 用FTP功能的模块的需求来决定是否与FTP服务器端建立数据连接。

再进一步的,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。

FTP传输系统的FTP功能调用方法,其特征在于,包括以下步骤:

步骤1.调用FTP功能的模块通过一个函数接口同FTP客户端主函数模块建立联系,发 送FTP建立连接所需要的信息并通知FTP客户端主函数模块建立连接;

步骤2.FTP客户端主函数模块在该函数接口中建立调用FTP功能的模块与FTP数据转发 模块之间的连接;

步骤3.FTP客户端主函数模块向FTP数据转发模块发送FTP数据转发主任务并控制FTP 数据转发模块与FTP服务器端建立连接,FTP数据转发主任务中包含FTP建立连接所需要的 信息;

步骤4.FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间的 连接并完成注册,且根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP功能的 模块之间的通讯数据;

步骤5.通讯时,若FTP服务器端关闭或连接出错或调用FTP功能的模块选择退出任务, 则退出任务,先断开与FTP服务器端之间的连接再断开调用FTP功能的模块与FTP数据转发 模块之间的连接。

具体的,步骤2中,包括以下具体步骤:

步骤201.FTP客户端主函数模块在该函数接口中建立调用FTP功能的模块与FTP数据转 发模块之间的控制连接;

步骤202.FTP客户端主函数模块根据调用FTP功能的模块的要求决定是否在在调用FTP 功能的模块与FTP数据转发模块之间建立数据连接,若是则建立数据连接。

进一步的,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。

具体的,步骤4中,包括以下具体步骤:

步骤401.FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间 的控制连接并根据FTP数据转发主任务中的信息完成注册;

步骤402.FTP数据转发模块随时根据调用FTP功能的模块的需求来决定是否与FTP服务 器端建立数据连接,若是则建立数据连接,且在数据连接的信息转发完成后关闭数据连接;

步骤403.FTP数据转发模块根据创建的控制连接和/或数据连接设置相应的select,监 听控制连接和/或数据连接的select是否超时,若超时则根据select的返回情况进行相应处 理;

步骤404.FTP数据转发模块转发FTP服务器端与调用FTP功能的模块之间的控制连接和/ 或数据连接中的所有通讯数据。

再进一步的,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。

本发明的有益效果是,通过上述FTP传输系统及其FTP功能调用方法,由于在FTP建立 连接时,通过FTP数据转发模块将FTP服务器端与调用FTP功能的模块隔离开来,若在FTP 数据转发的过程中出现了连接错误,也不会导致调用FTP功能的模块出现问题,同时以后对 FTP的扩展也相对容易,不用修改其他调用FTP功能的模块。

附图说明

图1是现有技术中FTP传输系统的结构框图。

图2是本发明FTP传输系统的结构框图。

图3是本发明FTP传输系统的FTP功能调用方法的流程图。

具体实施方式

下面结合实施例及附图,详细描述本发明的技术方案。

本发明FTP传输系统的结构框图参见图1,本发明FTP传输系统的FTP功能调用方法的 流程图参见图2。本发明的FTP传输系统,包括FTP客户端主函数模块、调用FTP功能的模 块、FTP服务器端及FTP数据转发模块,其中,调用FTP功能的模块用于通知FTP客户端主 函数模块建立连接,连接建立后通过FTP数据转发模块与FTP服务器端进行通讯;FTP客户 端主函数模块用于向FTP数据转发模块发送FTP数据转发主任务,另根据调用FTP功能的模 块的通知,在调用FTP功能的模块与FTP数据转发模块之间建立连接及控制FTP数据转发模 块与FTP服务器端建立连接;FTP数据转发模块用于根据FTP客户端主函数模块的控制建立 与FTP服务器端之间的连接,并根据接收到的FTP数据转发主任务转发FTP服务器端与调用 FTP功能的模块之间的通讯数据。

本发明FTP传输系统的FTP功能调用方法中,首先调用FTP功能的模块通过一个函数接 口同FTP客户端主函数模块建立联系,发送FTP建立连接所需要的信息并通知FTP客户端主 函数模块建立连接,FTP客户端主函数模块再在该函数接口中建立调用FTP功能的模块与FTP 数据转发模块之间的连接,然后向FTP数据转发模块发送FTP数据转发主任务并控制FTP数 据转发模块与FTP服务器端建立连接,FTP数据转发主任务中包含FTP建立连接所需要的信 息,FTP数据转发模块再根据FTP客户端主函数模块的控制建立与FTP服务器端之间的连接 并完成注册,且根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP功能的模块 之间的通讯数据,最后在通讯时,若FTP服务器端关闭或连接出错或调用FTP功能的模块选 择退出任务,则退出任务,先断开与FTP服务器端之间的连接再断开调用FTP功能的模块与 FTP数据转发模块之间的连接。

实施例

本发明实施例中FTP传输系统的结构框图参见图1,本发明实施例中FTP传输系统的FTP 功能调用方法的流程图参见图2。本实施例的FTP传输系统包括包括FTP客户端主函数模块、 调用FTP功能的模块、FTP服务器端及FTP数据转发模块,其中,调用FTP功能的模块用于 通知FTP客户端主函数模块建立连接,连接建立后通过FTP数据转发模块与FTP服务器端进 行通讯;FTP客户端主函数模块用于向FTP数据转发模块发送FTP数据转发主任务,另根据 调用FTP功能的模块的通知,在调用FTP功能的模块与FTP数据转发模块之间建立连接,建 立连接的步骤为:先在调用FTP功能的模块与FTP数据转发模块之间建立控制连接,该控制 连接为控制TCP连接,再根据调用FTP功能的模块的要求决定是否在在调用FTP功能的模块 与FTP数据转发模块之间建立数据连接,该数据连接为数据TCP连接,并控制FTP数据转发 模块与FTP服务器端建立连接;FTP数据转发模块用于根据FTP客户端主函数模块的控制建 立与FTP服务器端之间的连接,该连接建立的步骤是:先在FTP数据转发模块与FTP服务器 端之间建立控制连接,再根据调用FTP功能的模块的需求来决定是否与FTP服务器端建立数 据连接,FTP数据转发模块再根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP 功能的模块之间的通讯数据。

本发明实施例的FTP传输系统的FTP功能调用方法,具体步骤如下:

步骤1.调用FTP功能的模块通过一个函数接口同FTP客户端主函数模块建立联系,发 送FTP建立连接所需要的信息并通知FTP客户端主函数模块建立连接;

本步骤中,该函数接口我们命名为ftpXfer,建立连接所需要的信息包括用户名、密码、 目录等,整个FTP客户端对外只提供ftpXfer一个接口,在这里体现了面向对象的封装性, 好的封装对外提供了简单明了的接口。

步骤2.FTP客户端主函数模块在该函数接口中建立调用FTP功能的模块与FTP数据转发 模块之间的连接;

步骤3.FTP客户端主函数模块向FTP数据转发模块发送FTP数据转发主任务并控制FTP 数据转发模块与FTP服务器端建立连接,FTP数据转发主任务中包含FTP建立连接所需要的 信息;

步骤4.FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间的 连接并完成注册,且根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP功能的 模块之间的通讯数据;

步骤5.通讯时,若FTP服务器端关闭或连接出错或调用FTP功能的模块选择退出任务, 则退出任务,先断开与FTP服务器端之间的连接再断开调用FTP功能的模块与FTP数据转发 模块之间的连接。

其中,步骤2包括以下具体步骤:

步骤201.FTP客户端主函数模块在该函数接口中建立调用FTP功能的模块与FTP数据转 发模块之间的控制连接;

步骤202.FTP客户端主函数模块根据调用FTP功能的模块的要求决定是否在在调用FTP 功能的模块与FTP数据转发模块之间建立数据连接,若是则建立数据连接。

在步骤201与步骤202中,控制连接为控制TCP连接,数据连接为数据TCP连接,这两 个连接都是内部连接,同时对于调用FTP功能的模块来说这两个连接都作为服务器端,调用 FTP功能的模块作为客户端,内部连接就是说这两个连接都是在内部环回口上建立的连接。 例如,本发明建立一个内部控制连接,是先创建一个内部服务器端通信的socket并bind到 环回口的端口0上,表示可以选择任意合适的端口,环回口的地址在不同的系统中有不同的 方式获取,同时设置为listen模式,随后创建一个内部客户端连接的socket,connect到内 部服务器端socket上,内部服务器端accept到一个连接后返回一个新的socket用于与本次 连接的客户端通信,同时内部服务器端socket还处于listen模式等待下一个客户端连接到 来,内部服务器端即是FTP数据转发模块,客户端此时为调用FTP功能的模块。

步骤4包括以下具体步骤:

步骤401.FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间 的控制连接并根据FTP数据转发主任务中的信息完成注册;

步骤402.FTP数据转发模块随时根据调用FTP功能的模块的需求来决定是否与FTP服务 器端建立数据连接,若是则建立数据连接,且在数据连接的信息转发完成后关闭数据连接;

步骤403.FTP数据转发模块根据创建的控制连接和/或数据连接设置相应的select,监 听控制连接和/或数据连接的select是否超时,若超时则根据select的返回情况进行相应处 理;

本步骤中,FTP客户端和服务器端的数据连接建立起来后,就可以select了,select的 主要功能是检查这个已经创建的连接上是否有数据可读或者可写,如果这个连接上既没有数 据可读又没有数据可写,select就会在设定的时间内超时。而相应的情况:可读、可写、超 时,可根据相应的需要做处理。

步骤404.FTP数据转发模块转发FTP服务器端与调用FTP功能的模块之间的控制连接和/ 或数据连接中的所有通讯数据。

本步骤即图3中的FOREVER中,也是通讯数据转发任务的主要处理过程。在这个FOREVER 中,会根据前面创建的控制连接或者数据连接设置相应的select,当监听的控制连接、数据 连接或select超时时返回,此时我们根据select的返回情况来处理相应的情况。本发明在 这里建立了一个socket中转站,即把从一个socket中读到数据写到另一个socket中。控制 连接的信息和数据连接的信息都是通过这个socket中转站进行处理的。如果调用FTP功能的 模块有控制连接的数据要发到FTP服务器端,这时在中转站接口中先用调用FTP功能的模块 的socket和转发任务的控制socket进行通信,读取调用FTP功能的模块的数据,然后用FTP 转发任务的socket和远端服务器的socket进行通信,把调用FTP模块的数据转到FTP服务 器端上。同理数据连接的通信也是通过socket中转站实现的,上述socket中转站即在FTP 数据转发模块中。

在步骤401-步骤404中,控制连接为控制TCP连接,数据连接为数据TCP连接。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号