专利名称:Ftp传输系统及其ftp功能调用方法
技术领域:
本发明涉及通信技术,特别涉及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连接。
权利要求
1.FTP传输系统,包括FTP客户端主函数模块、调用FTP功能的模块及FTP服务器端,其特征在于,还包括FTP数据转发模块; 所述调用FTP功能的模块,用于通知FTP客户端主函数模块建立连接,连接建立后通过FTP数据转发模块与FTP服务器端进行通讯; 所述FTP客户端主函数模块,用于向FTP数据转发模块发送FTP数据转发主任务,另根据调用FTP功能的模块的通知,在调用FTP功能的模块与FTP数据转发模块之间建立连接及控制FTP数据转发模块与FTP服务器端建立连接; 所述FTP数据转发模块,用于根据FTP客户端主函数模块的控制建立与FTP服务器端之间的连接,并根据接收到的FTP数据转发主任务转发FTP服务器端与调用FTP功能的模块之间的通讯数据。
2.如权利要求1所述的FTP传输系统,其特征在于,所述FTP客户端主函数模块在调用FTP功能的模块与FTP数据转发模块之间建立连接的步骤是:先在调用FTP功能的模块与FTP数据转发模块之间建立控制连接,再根据调用FTP功能的模块的要求决定是否在在调用FTP功能的模块与FTP数据转发模块之间建立数据连接。
3.如权利要求2所述的FTP传输系统,其特征在于,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。
4.如权利要求1-3任一项所述的FTP传输系统,其特征在于,所述FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间的连接的步骤是:先在FTP数据转发模块与FTP服务器端之间建立控制连接,再根据调用FTP功能的模块的需求来决定是否与FTP服务器端建立数据连接。
5.如权利要求4所述的FTP传输系统,其特征在于,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。
6.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数据转发模块之间的连接。
7.如权利要求6所述的FTP传输系统的FTP功能调用方法,其特征在于,步骤2中,包括以下具体步骤: 步骤201.FTP客户端主函数模块在该函数接口中建立调用FTP功能的模块与FTP数据转发模块之间的控制连接; 步骤202.FTP客户端主函数模块根据调用FTP功能的模块的要求决定是否在在调用FTP功能的模块与FTP数据转发模块之间建立数据连接,若是则建立数据连接。
8.如权利要求7所述的FTP传输系统的FTP功能调用方法,其特征在于,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。
9.如权利要求6-8任一项所述的FTP传输系统的FTP功能调用方法,其特征在于,步骤4中,包括以下具体步骤: 步骤401.FTP数据转发模块根据FTP客户端主函数模块的控制建立与FTP服务器端之间的控制连接并根据FTP数据转发主任务中的信息完成注册; 步骤402.FTP数据转发模块随时根据调用FTP功能的模块的需求来决定是否与FTP服务器端建立数据连接,若是则建立数据连接,且在数据连接的信息转发完成后关闭数据连接; 步骤403.FTP数据转发模块根据创建的控制连接和/或数据连接设置相应的select,监听控制连接和/或数据连接的select是否超时,若超时则根据select的返回情况进行相应处理; 步骤404.FTP数据转发模块转发FTP服务器端与调用FTP功能的模块之间的控制连接和/或数据连接中的所 有通讯数据。
10.如权利要求9所述的FTP传输系统的FTP功能调用方法,其特征在于,所述控制连接为控制TCP连接;所述数据连接为数据TCP连接。
全文摘要
本发明涉及通信技术。本发明解决了现有FTP功能在工作过程中出现死机情况也会导致调用FTP的模块死机的问题,提供了一种FTP传输系统及其FTP功能调用方法,其技术方案可概括为FTP传输系统,包括FTP客户端主函数模块、调用FTP功能的模块、FTP服务器端及FTP数据转发模块。本发明的有益效果是通过FTP数据转发模块将FTP服务器端与调用FTP功能的模块隔离开来,若在FTP数据转发的过程中出现了连接错误,也不会导致调用FTP功能的模块出现问题。适用于FTP传输系统。
文档编号H04L29/08GK103152372SQ20111040334
公开日2013年6月12日 申请日期2011年12月7日 优先权日2011年12月7日
发明者严林 申请人:迈普通信技术股份有限公司