公开/公告号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连接。
机译: 用于负载均衡多个文件传输协议(FTP)服务器以为基于云的服务的FTP连接提供服务的系统和方法
机译: 用于将多文件传输协议(FTP)服务器负载平衡到服务以用于基于云的服务的FTP连接的系统和方法
机译: HTTPHyper文本传输协议IP FTP通过使用基于HTTPHyper Text Transfer Protocol的虚拟主机转发来制作动态Internet IP寻址计算机的方法Web服务器FTP服务器和电影Internet电话系统PC到PC