AS/400上的FTP

3.1.1.1 AS/400上的FTP

FTP是如何工作的

FTP是基于客户-服务器模型而设计的。客户和服务器之间利用TCP直接连接。与其它客户-服务器模型不同的是:FTP客户与服务器之间是要建立双重连接:一个是控制连接,一个是数据连接。建立双重连接的原因在于FTP是一个交互会话系统,某客户每次调用FTP,便与服务器建立一个会话,会话以控制连接来维持,直到退出FTP。控制连接负责传输控制信息,尤其是客户客户命令(比如文件传输命令等等)。利用控制命令,客户可以向服务器提出无数次的请求(一个客户命令就是一个请求)。客户每提出一个请求,服务器再与客户建立一个数据连接,进行实际的数据(比如文件)传输。一旦数据传输完成,数据连接会话就被撤销,但控制连接依然存在,客户可以继续发出命令。直到牢记键入CLOSE命令撤销控制连接,再键入QUIT退出FTP会话。此时双方控制进程就不再存在了。

FTP连接的建立

在一个FTP会话中,需要建立一个控制连接和若干个数据连接。

建立控制连接的过程大家都很熟悉。FTP服务器的公认端口是21。客户控制进程申请一个随机分配的本地端口后,用常规的方法可以与服务器端口21建立一个连接。

数据连接的建立就没有那么简单了。在建立数据连接的过程中,客户控制进程反客为主,成为连接的接收者,而服务器数据传输进程成了连接的请求者。作为一个新的子进程,服务器传输进程可以申请一个新的端口号来建立自己的相关连接(一般是利用FTP的保留端口号20),而它向哪个客户端口发送连接请求呢?要知道客户是没有公认端口的,这时就要利用到控制连接,客户控制进程通过控制连接告知服务器进程自己的数据连接端口号,服务器控制进程将它转告自己的数据传输进程,服务器数据传输进程便可以利用它与客户建立数据连接。

FTP命令集

!”或者“*SYSCMD:用户可以在FTP模式中执行本地AS/400的命令。在实际工作中,这一命令非常有用,你不用退出FTP模式就可以直接执行本地AS/400的命令。

DIR”:列出远程AS/400某个目录中的FILESMEMBERS。若你执行了“PUT”操作,用“DIR”命令查看是否将文件传到了远程AS/400中。

PWD”:列出远程系统的当前目录中的FILESMEMBERS

LPWD”:列出本地系统的当前工作目录中的FILESMEMBERS

PUT”:将文件从本地系统发送到远程系统。

MPUT”:将多个文件从本地系统发送到远程系统。

GET”:从远程系统传文件到本地系统。

MGET”:从远程系统传多个文件到本地系统。

ASCII”:改变到ASCII模式。

BINARY”:改变到BINARY模式。

EBCDIC”:改变到EBCDIC模式。

特别注意:将含有数值类型的文件从AS/400发送到ASCII系统时,应将文件中的数值字段改为ZONED类型,而不是PACKED类型,否则将发生不可预测的结果。

RENAME”:更改远程系统中的文件名。

QUOTE”:执行远程服务器端的命令而不用重新登录远程系统。

LCD”:改变本地系统的当前目录。

CD”:改变远程系统的当前目录。

CDUP”:进入远程系统的父目录。

LOCSTAT”:显示本地状态信息。

配置AS/400 FTP服务器

用户要配置AS/400 FTP服务器中,需要有*IOSYSCFG特权。

A、配置TCP/IP

B、修改FTP属性。 命令是CHGFTPA(对QUSRSYS/QATMFTP.CONFIG数据库文件进行修改)。

主要参数说明:

Autostart Servers : Autostart Servers*YES时,一旦TCP/IP启动,FTP服务器也将自动启动。

Number of Initial Servers: FTP服务器初始启动数量。根据FTP的流量而定,初始值为3一般就足够用了。

Inactivity Timeout: 指出FTP客户端与服务器端在多少秒没有交互后,连接将自动断开。缺省值为300秒(5分钟)。

Coded character set identifyier: 缺省值为00819,所有被传入的ASCII字符将被翻译成EBCDIC 500代码页。也可以制定你自己的转换表。

Initial name format: 缺省值为*LIBL,将所有FTP服务器的命名形式设为NAMEFMT0;若此值为*PATH,则NAMEFMT=1

Initial directory: 缺省值为*CURLIB,以登录FTP服务器的用户的当前目录为FTP会话的当前目录;若此值为*HOMEDIR时,FTP会话的目录以用户简要表的HOMEDIR参数为准。

New file CCSID: 指定用户FTP创建文件的CCSID值。

启动与停止FTP服务器

    手工启动FTP服务器,在AS/400命令行输入:

STRTCPSVR *FTP

手工停止所有FTP服务器,在AS/400命令行输入:

ENDTCPSVR *FTP

注意:

因为直接用ENDTCPSVR *FTP命令停止FTP服务器,用户可能会丢失数据,为了保证用户不丢失数据,应该按照以下步骤进行处理:

A、AS/400的命令行输入:

WRKACTJOB SBSD(QSYSWRK)

查找是否有QTFTPxxxxx(xxxxx代表5位数字)存在,若没有,则可以执行ENDTCPSVR *FTP命令;若有,则黑心做下一步。

B、确保没有用户登录FTP服务器。在AS/400的命令行输入:

NETSTAT *CNN

查找是否有LOCAL PORT FTP-CON状态为ESTABLISHED的连接存在,若没有则可以执行下一步;若有,应该等等用户的FTP结束后再执行下一步。

C、AS/400的命令行键入:

ENDTCPSVR *FTP

批方式FTP

    FTP被设计为交互式TCP/IP应用,但AS/400也支持FTP批处理方式。

    FTP批处理方式应该按照如下步骤来进行:

3.2.5 创建一个CL程序来启动FTP

3.2.5 创建一个含有所有交互方式FTP命令的源物理文件的成员。

3.2.5 提交批作业运行这个CL程序。

检查结果。[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/52450/viewspace-993889/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/52450/viewspace-993889/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值