FTP技术

2024-07-22

FTP技术(精选12篇)

FTP技术 篇1

Vx Works是通过Tornado开发工具编译完成的镜像, 可以单独在目标机上运行, 而雷达数据处理软件是在Vx Works镜像上的运用程序, 当Vx Works镜像中没有嵌入FTP时, 就无法通过网络访问到目标机, 同时, 也无法查看和更改目标机中的文件。随着计算机硬件配置日益完善、网络技术越来越成熟, 使用网络访问目标机进行数据交换更加方便、快捷。在雷达数据处理软件运行时, 通常会产生大量的数据文件, 有时也可能需要修改内部相关的配置文件。这就要求工作人员在开发雷达数据处理软件时嵌入FTP, 以实现网络访问功能。本文简要介绍了在应用程序中嵌入FTP的方法。

1 Vx Works系统简介

Vx Works是美国风河公司 (Wind River) 设计开发的一种嵌入式实时操作系统, Vx Works是其嵌入式开发环境的关键组成部分, Tornado是其主机的集成开发环境。因为Vx Works具有较高的可靠性, 使其被广泛应用于军工领域。20世纪90年代, Vx Works进入国内市场, 受到了用户的好评。

Vx Works提供了类似UNIX的直接I/O、POSIX接口异步I/O等, 并且提供了多种格式的文件系统, 包括dos Fs、rtll Fs、raw Fs、tape Fs、cdrom Fs和TSFs等, 适用于不同的应用环境, 通常将dos Fs作为目标机的文件系统。

2 FTP的实现方法

Vx Works操作系统下实现文件传输, 在工程实践中, 经常用到的有MS_DOS和FTP。其中, 在基于MS_DOS下传输文件时, 在实践中, 经常定义一些文件名大于8个字符的文件, 这时, MS_DOS就不能显示文件全名, 就会使得文件传输失败, 同时, 受移动存储介质的约束 (Vx Works有没有加载USB驱动、能不能识别U盘启动盘等约束) , 存在工作效率低等缺点。FTP文件传输系统则是在Vx Works操作系统下建立的文件传输服务器任务, 只需要在Vx Works操作系统下特定网卡上指定特定的IP地址, 就可以通过客户端实时传输目标计算机上的文件, 再通过上位机访问、修改和传输文件等, 轻松实现2台计算机之间的文件传输。

在工程实际运行过程中, 在所需工程中加入已经编译好文件传输服务器任务的ftp.c文件, 在软件主程序函数 (或相关初始化函数) 中添加与上位机通讯的网卡和IP地址, 如果目标计算机中有多块网卡, 一般使用主板集成的第一块网卡, 例如ip Attach (0, "fei") (根据目标机bootrom和主板网卡芯片使用) , if Addr Set ("fei0", "127.12.12.1") ;然后加入FTP入口函数, 例如ftp Start ("/ata0a") 。

完成相关工作后, 编译并下载运行该模块就可实现FTP通讯, 将上位机IP地址设置成与目标机同一网段的IP地址, 例如127.12.12.2.打开目标计算机和上位机, 在网络连接正常的状态下, 便可以通过上位机运行ftp 127.12.12.1命令, 使FTP访问雷达计算机。利用ftp基本命令就可轻松实现2台计算机间的信息交换, 例如get, send, ls等基本命令。

3 程序实例和说明

下面简单介绍ftp.c文件, 包含头文件有:#include"vx Works.h""task Lib.h""lst Lib.h""sys/socket.h""netinet/in.h""netin et/tcp.h""sock Lib.h""log Lib.h""login Lib.h""fio Lib.h""dos Fs Lib.h"和"net/protosw.h"等, 主要变量BOOL vxft Start Done、vxft Active, int vxft Server Sock、vxft Max Clients、vxft Task Id, LIST vxft Session List, SEM_ID vxft Mutex Sem、vxft Signal Sem等;包含的主要函数有ftp Start () , ftp Stop () , vxft Init () 等。

4 结束语

本文从应用程序的角度出发, 介绍了在Vxworks系统中嵌入FTP的方法。该方法已经应用于实际软件设计中, 而FTP的使用可以让运行在Windows系统下的上位机轻松访问Vxwork系统, 实现2个系统间的网络数据交换, 为分析处理数据文件提供了便利。

摘要:介绍了VxWorks系统下实现FTP传输文件的方法, 分析了使用FTP传输技术的优势, 探讨了FTP传输技术在VxWorks系统下的具体应用, 就如何进行实际应用给出了解决方法, 这在工程应用中具有一定的实用价值。

关键词:VxWorks,Tornado,Ftp,IP地址

FTP技术 篇2

根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口号,在详细描述FTP前,我们来简单讨论一下TCP端口号的一些基本概念,TCP使用端口号来标识所发送和接收的应用,端口号可以帮助TCP来分离字节流并且帮相应字节传递给正确的应用程序。TCP端口号可以是半永久的和暂时的。服务器端监听在半永久的端口上来让客户端访问。客户端使用暂时的端口在本地标识一个对话,客户端端口只在使用TCP服务时候才存在,而服务器端口只要服务器在运行就一直在监听。

TCP端口可以归为3类:

1、众所周知的端口来标识在TCP上运行的标准服务,包括FTP、HTTP、TELNET、SMTP等,这些端口号码范围为0-1023;

2、注册端口号用来标识那些已经向IANA(Internet Assigned Numbers Assigned Numbers Authority)注册的应用,注册端口号为1024-49151;

3、私有端口号是非注册的并且可以动态地分配给任何应用,私有端口为49152-65535;注册的端口号本来打算只给注册的应用使用,可近年来端口号已经陷入了到达极限的困境,你可能会看到本来应该是给注册应用使用的注册端口被非注册应用用做暂时的端口。RFC1700详细标注了众所周知的和注册的端口号,然而不幸的是,这个RFC文档自从1994年以来一直没有被更新,然后你仍可以从IANA得到一个及时更新的端口列表,详细URL为:www.iana.org/assignments/port-numbers

>>2.0<< FTP Port模式和FTP Passive模式

当你对一个FTP问题进行排错时候,你首先要问的一个问题是使用的是port模式的还是passive模式。因为这两种行为迥异,所以这两种模式引起的问题也不同;在过去,客户端缺省为active(port)模式;近来,由于Port模式的安全问题,许多客户端的FTP应用缺省为Passive模式。

>>2.1 FTP Port模式

Port模式的FTP步骤如下:

1、客户端发送一个TCP SYN(TCP同步)包给服务器段众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口;

2、服务器端发送SYN ACK(同步确认)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口;

3、客户端发送一个ACK(确认)包;客户端使用这个连接来发送FTP命令,服务器端使用这个连接来发送FTP应答;

4、当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客户端告诉服务器端打开与另台主机的连接;

5、服务器端发送一个SYN包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器端的暂时端口号;

6、客户端以源端口为暂时端口,目的端口为20发送一个SYN ACK包;

7、服务器端发送一个ACK包;

8、发送数据的主机以这个连接来发送数据,数据以TCP段(注:segment,第4层的PDU)形式发送(一些命令,如STOR表示客户端要发送数据,RETR表示服务器段发送数据),这些TCP段都需要对方进行ACK确认(注:因为TCP协议是一个面向连接的协议)

9、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以ACK确认,另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以ACK确认;

10、客户端能在控制连接上发送更多的命令,这可以打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器端以ACK包来确认客户端的FIN,服务器同样也发送它的FIN,客户端用ACK来确认。

下图图示了FTP PORT模式前几步步骤:

/====================================================================

| |

| [ ftp Client ] [ ftp Server ] |

| |

| (TCP:21 连接初始化,控制端口) |

| SYN |

| Port xxxx ---------------------->Port 21 [TCP] |

| SYN+ACK |

| Port xxxx <---------------------- Port 21 |

| ACK |

| Port xxxx ---------------------->Port 21 |

| |

| (控制操作: 用户列目录或传输文件) |

| |

| Port, IP, Port yyyy |

| Port xxxx <---------------------- Port 21 |

| Port Seccussful |

| Port xxxx <---------------------- Port 21 |

| List, Retr or Stor |

| Port xxxx ---------------------->Port 21 |

| |

| |

| (TCP:20 连接初始化,数据端口) |

| SYN |

| Port yyyy <---------------------- Port 20 |

| SYN+ACK |

| Port yyyy ---------------------->Port 20 |

| ACK |

| Port yyyy <---------------------- Port 20 |

| |

| |

| (数据操作: 数据传输) |

| Data + ACK |

| Port yyyy <--------------------->Port 20 |

| . |

| . |

| . |

| |

====================================================================/

FTP Port模式会给网络管理人员在许多方面带来很多问题,首先,在PORT命令消息中的IP地址和端口号的编码不是直白地显示,

另外,应用层的协议命令理论上不应该包含网络地址信息(注:IP地址),因为这打破了协议层的原则并且可能导致协同性和安全性方面的问题。

下图是WildPackets EtherPeek协议分析仪解码了PORT命令的地址参数,地址参数后是端口号,见PORT192,168,10,232,6,127;6,127部分的第一个阿拉伯数字乘以256,然后加上第2个阿拉伯数字就得到端口号,所以客户端指定了端口号为6*256+127=1663;

/====================================================================

| IP Header - Internet Protocol Datagram |

| Version: 4 |

| Header Length: 5 (20 bytes) |

| |

| ............... |

| |

| Time To Live: 128 |

| Protocol: 6 TCP - Transmission Control Protocol |

| Header Checksum: 0xAA36 |

| Source IP Address: 192.168.0.1 DEMO |

| Dest. IP Address: 192.168.0.3 VI |

| No IP Options |

| |

| TCP - Transport Control Protocol |

| Source Port: 2342 manage-exec |

| Destination Port: 21 ftp |

| Sequence Number: 2435440100 |

| Ack Number: 9822605 |

| Offset: 5 (20 bytes) |

| Reserved: %000000 |

| Flags: %011000 |

| 0. .... (No Urgent pointer) |

| .1 .... Ack |

| .. 1... Push |

| .. .0.. (No Reset) |

| .. ..0. (No SYN) |

| .. ...0 (No FIN) |

| |

| Window: 65150 |

| Checksum: 0x832A |

| Urgent Pointer: 0 |

| No TCP Options |

| |

| FTP Control - File Transfer Protocol |

| Line 1: PORT 192,168,0,1,9,39|

| |

| FCS - Frame. Check Sequence |

| FCS (Calculated): 0xF4C04A4F |

====================================================================/

下图验证了服务器端的确从端口20打开到端口1663的TCP连接:

/====================================================================

| TCP - Transport Control Protocol |

| Source Port: 20 ftp-data |

| Destination Port: 1663 |

| Sequence Number: 2578824336 |

| Ack Number: 0 |

| Offset: 6 (24 bytes) |

| Reserved: %000000 |

| Flags: %000010 |

| 0. .... (No Urgent pointer) |

| .0 .... (No Ack) |

| .. 0... (No Push) |

| .. .0.. (No Reset) |

| .. ..1. SYN |

| .. ...0 (No FIN) |

| |

| Window: 3731 |

| Checksum: 0x8A4C |

| Urgent Pointer: 0 |

| No TCP Options |

| |

| TCP Options |

| Options Type: 2 Maxinum Segment Size |

| Length: 4 |

| MSS: 1460 |

| |

| FCS - Frame. Check Sequence |

| FCS (Calculated): 0x5A1BD023 |

====================================================================/

当使用FTP时候,网络中的防火墙必须要声明相应的端口,防火墙必须要跟踪FTP对话然后检查PORT命令,防火墙必须要参与从服务器端到客户端在PORT命令中指定的端口连接的建立过程。如果网络中使用了NAT(注:网络地址翻译),那么NAT的网关同样也需要声明相应的端口,网关需要把在PORT命令中指定的IP地址翻译成分配给客户的地址,然后重新计算TCP的Checksum;如果网关没有正确地执行这个操作,FTP就失败了。

公司FTP服务平台建设探讨 篇3

【关键词】FTP服务;Internet信息服务(IIS);Serv-U

Internet信息服务(IIS)英文全称是Internet Information Services,是一个全部包容WWW server、Gopher

server和FTP server,由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows Server 2000、Windows XP Professional、Windows Server 2003、Windows Server 2008一起发行。

Serv-U是基于Microsoft Windows平台的FTP服务器软件之一。通过使用Serv-U,用户能够将任何一台PC设置成一个FTP服务器,用户或其他使用者就能够使用FTP协议,通过在同一网络上的任何一台PC与FTP服务器连接,进行文件或目录的复制、移动、创建和删除等。

1.用Interner信息服务(IIS)架设FTP服务

Internet信息服务(IIS)在Windows操作平台下属于非默认安装内容,所以要应用Internet信息服务(IIS)服务首先需要安装IIS。通过“控制面板”—“添加/删除程序”—“添加/删除Windows组件”安装IIS,安装过程中可能需要系统对应的安装光盘。[注:添加/删除Windows组件时一定要手动将“Internet信息服务(IIS)”中的“文件传输协议(FTP)服务”勾选上。如图1、图2。

IIS安装成功后,计算机管理中服务和应用程序中将增加“Internet信息服务”如图3,接下来开始用Internet信息服务(IIS)架设FTP服务。对于第一个FTP服务站点,可以通过默认FTP站点修改完成。进入“FTP站点”下面的“默认FTP站点”属性页面进行修改如图4、图5、图6。

默认FTP站点修改完成后,最基本的FTP服务已经架设完成。此时提供的FTP服务没有限制,而且仅允许管理员(Administrator)和匿名用户(Anonymous)登陆,如果要给部分用户名提供特殊访问权限需要在系统用户组里面增加相应的用户名,同时对提供FTP服务的文件夹授与该用户名相应的权限。

2.通过Serv-U架设FTP服务

Serv-U支持所有版本的Windows操作系统,可以设定多个FTP服务器,可以限定登录用户的权限、登录目录及服务器空间大小,功能非常完善。下面以Serv-U汉化版为例,简单说明如何通过Serv-U架设FTP服务。

首先下载安装Serv-U,运行,将出现“设置向导”窗口,第一个FTP站点可以直接通过设置向导完成。设置Serv-U的IP地址与域名(Serv-U中的域同等于Internet信息服务(IIS)中的FTP站点)如图7、图8。

接下来的步骤按照默认方式进行,包括端口号“21”,系统服务选项“是”,一直到向导完成。这个时候我们FTP服务基本架设已经完成。但是目前服务是空的,任何人都无法访问和登陆,需要对FTP服务增加访问用户和访问目录。现在以匿名访问为例开通访问FTP访问权限,匿名访问就是允许用户以Anonymous为用户名,无需特定密码即可连接服务器并拷贝文件,如图9;允许匿名登录之后就要为匿名账户指定FTP上传或下载的主目录,这是匿名用户登录到你的FTP服务器后看到的目录。设定后,向导还会继续询问你是否将匿名用户锁定于此目录中,从安全的角度考虑,建议选“是”。这样匿名登录的用户将只能访问你指定的主目录及以下的各级子目录,而不能访问上级目录,便于保证硬盘上其他文件的安全,图10。

此时已经完成了FTP服务匿名用户(Anonymous)的登陆和访问,如果要给部分用户名提供特殊访问权限需要在“用户”窗口中新建用户,进入图9“用户名称”设置,填入你制定的账号名称,而后在“账号密码”窗口输入该账号的密码。单击“下一步”,会要求你指定FTP主目录,并询问是否将用户锁定于主目录中,选“是”,作用与匿名账户设定基本相同。紧接着要设置该账户的远程管理员权限,分为“无权限”、“组管理员”、“域管理员”、“只读管理员”和“系统管理员”五种选项,每项的权限各不相同,根据具体情况进行设置。

3.Internet信息服务(IIS)和Serv-U架设FTP进行比较

Internet信息服务(IIS)和Serv-U都能实现架设FTP服务的功能。

Internet信息服务(IIS)是Windows自带的附属功能,但是在Windows Server 2003及以上版本的操作系统上通过Internet信息服务(IIS)部署FTP服务,需要对提供FTP服务的文件夹进行授权,同时必须在系统用户组里面增加相应的FTP访问用户,随着授权用户的增加系统用户组中的用户数量同样增加如图11,而系统用户组中的所有用户都可以登陆操作系统,这将对提供FTP服务的服务器带来一定风险。Internet信息服务(IIS)里面的配置信息,包括文件夹和用户权限不能实现迁移,一旦更换系统将重新配置。

Serv-U构架FTP服务,不需要对提供FTP服务的文件夹进行单独授权,也不用在操作系统中增加系统用户,只用在Serv-U中的用户中增加相应FTP访问用户如图11,在Serv-U用户管理中可以对具体用户授予指定文件夹的相应权限,权限包括有“读取”“写入”“追加”“删除”“执行”,可以通过简单的配置给予相应用户权限。Serv-U虽然是基于Microsoft Windows平台的FTP服务器软件,但是需要一套独立的服务软件,需要单独购买。

4.公司各部门应用需求现状

目前公司提供的FTP服务包括有为全公司范围内访问的资源共享服务、为电视台提供的网站及图文审批库服务、为公司办提供的公文库服务、金蝶K3系统备份数据库服务。在具体的单独服务中特别是提供全公司范围内访问的资源共享服务中,需要实现不同FTP登陆用户对文件夹有不同的访问权限,比如匿名用户(Anonymous)不能对公司FTP服务中的特殊文件夹进行访问,只能是指定授权用户才能访问,对于办公室公文库服务和金蝶K3数据备份服务需要实现只能对指定的IP地址和特定用户授权访问。

公司FTP从2004年左右开始提供服务,而提供服务的服务器随着服务时间的增长设备的故障率也将随着升高,从数据安全方面考虑FTP服务迁移是必然的。原来提供FTP服务的操作系统是Windows Server 2000,而现在主流的服务器操作系统是Windows Server 2003和Windows Server 2008,根据前面介绍通过Internet信息服务(IIS)架设FTP服务,Internet信息服务(IIS)里面的配置信息,包括文件夹和用户权限发不能实现迁移,一旦更换系统将重新配置,所以要在新的操作系统中架设FTP服务必须全部重新部署和配置。

5.建议

用两个用户名为例进行FTP服务架设配置说明:

用户:匿名用户(Anonymous),授权用户(Demo)。

文件夹:提供FTP服务的文件为OFFICE,OFFICE下面有两个文件夹,分别为“公共资源”和“授权访问”。

权限:提供给Anonymous访问“公共资源”下面的内容,但是不能访问“授权访问”下面的内容;提供给Demo访问“公共资源”和“授权访问”下面的内容。

Internet信息服务(IIS)架设的FTP服务首先需要在系统用户组里面添加用户“Demo”,然后在文件夹“OFFICE”“公共资源”“授权访问”的属性—安全中添加Demo的读写权限,同时在“OFFICE”“公共资源”的属性—安全中增加用户“Users”的读写权限(这一步实现提供Anonymous访问“公共资源”下面的内容),在“授权访问”文件夹的属性—安全中去掉“Users”的读权限(这一步是阻止Anonymous访问“授权访问”下面的内容)。Windows Server 2000下面可以通过Internet信息服务(IIS)中对应FTP站点属性中的帐号安全里面的“FTP站点操作员”进行配置,但是Windows Server 2003、Windows Server 2008已经取消帐号安全里面的“FTP站点操作员”选项,只能通过文件夹授权。但是FTP服务需要迁移或者系统重做后这些配置需要重新做。

Serv-U架设的FTP服务只需在对应的FTP站点用户中添加用户“Anonymous”和“Demo”,然后将两者的上传或下载的主目录都指向“OFFICE”文件夹.,这时已经实现了“Anonymous”和“Demo”访问“公共资源”和“授权访问”下面的内容,现在再选中Anonymous用户并在其“目录访问”添加“授权访问”文件夹同时去掉“读取”“写入”“追加”“删除”“执行”的复选勾,此步就完成了阻止“Anonymous”访问“授权访问”文件夹下面的内容。Serv-U架设的FTP服务可以随时迁移,不受操作系统的影响。

本着架设易操作、易管理、易迁移的FTP服务站点,在提供没有或只有少数特殊访问用户的FTP服务站点时建议使用Internet信息服务(IIS)架设,在提供出现较多特殊访问用户的FTP服务站点时建议使用Serv-U架设。

6.结束语

随着公司信息化建设项目的推进和公司三大平台建设的启动,FTP服务将为公司提供更多更丰富的资源共享,同时更多的人员将应用到FTP服务,也就是FTP服务将在公司覆盖的范围越来越广、囊括的内容将越来越多,所以通过架设易操作、易管理、易迁移的FTP服务站点将会为公司提供更专业、更规范、更安全的资源共享服务。

FTP技术 篇4

Internet的发展非常迅猛,面对Internet这个无穷宝库,人们会经常下载所需要的各种各样的信息,这就要用到文件传输协议FTP(File Transfer Protocol)。FTP是因特网上较早出现的服务功能之一[1],迄今其仍是Internet上最常用也是最重要的服务功能。面对频繁的文件下载和相对拥挤的网络通路,如何快速、高效、方便地利用FTP获取所需要的信息显得越来越重要。为使系统具有更好的交互性,可以使用近年来出现的多线程机制提高系统的性能[2]。

线程是比进程更小的能完成一个任务的执行流。多线程是指在应用程序中有多个并发的线程在同时运行,这可以加快程序的响应时间,提高计算机资源的使用效率。多线程技术在图形用户界面和网络程序设计中非常有用[3]。 VC++支持多线程技术,但VC++程序目前尚不能嵌入流行的ASP网页代码中;Java的多线程技术颇佳,也可以很方便地将其Applet嵌入网络的页面中,但Java毕竟是一门类似于C++的语言,对大多数人来说,熟练掌握并非易事,远没有VB使用起来简单、方便,而且VB的速度同样也很快。VB 6.0在Internet网络编程方面提供了强大功能,本文利用VB 6.0的Addressof操作符配合Windows API函数实现多线程技术,并将其用于Internet上的FTP。

2 VB的FTP实现机制

VB的Internet Transfer控件实际上是一个Activex控件[4],他支持HTTP和FTP协议。前者用于浏览WWW的HTML页面,后者用于连接FTP服务器进行文件传输。新建一个工程,在窗体上放置Internet Transfer控件it1,另外放置2个文本框ta和tc,分别用来输入FTP站点地址和列出该站点指定目录下的可供下载的文件。

2.1 it1的主要属性和方法

it1.AccessType是与Internet的连接方式。可以设置为1,2,0,分别表示通过电话线、局域网和缺省(按照注册表中的设置)方式与Internet连接;it1.URL是FTP站点的地址;it1.RequestTimeout为连接的时间限制。

OpenURL方法用于同步连接指定的URL并返回该URL中的内容;Execute方法异步执行对远程服务器的请求命令,此方法会触发StateChanged事件;Cancel方法用于强行关闭当前的连接。

2.2 文件传输的实现

文件传输的实现程序如下所示:

程序运行如图1所示。

3 VB的多线程实现机制

3.1 创建线程并初始化

VB通过调用Windows的API函数CreateThread实现多线程[4],该函数的声明如下:

3.2 激活线程并管理

用以下2个API函数均可激活线程。

Declare Function ResumeThread Lib ″kernel32″ Alias ″ResumeThread″ (ByVal hThread As Long) As Long

Declare Function SuspendThread Lib ″kernel32″ Alias ″SuspendThread″ (ByVal hThread As Long) As Long

用类myclass的一个属性来管理线程的状态。

3.3 编写处理新线程函数的代码

在函数newFunc中,用form1.show执行前面的实现FTP的程序代码。运行时每当创建一个新线程成功,会弹出一个信息窗口,表明当前的线程号,如图2所示。

4 结 语

网络技术的发展日新月异,在“时间就是金钱、效率就是生命”的信息时代,如何通过Internet快速、高效、安全、方便地获取所需要的信息已成为一个非常重要的技术手段。多线程技术可以使程序反应更快、交互性更强。用VB实现多线程比用VC++和Java均简单得多,而且运行速度毫不逊色,只是目标代码稍大一点(约5%)。文中用Addressof操作符配合Windows API函数实现多线程,并成功运用于FTP远程文件传输。实验表明,该方法安全可靠,简单易行,速度快、开销低,每一个线程大约仅占CPU 20 ms的时间片。随着互连网的普及和网上信息的爆炸式增加,基于VB多线程技术的FTP必然会得到更广泛地应用。

参考文献

[1]田超.Internet的入网与应用[M].北京:科学技术出版社,1998.

[2]刘倩,裘鸿林.Java线程机制在FTP客户端程序中的应用[J].中国数据通信,2004,11(2):57-60.

[3]张白一,崔尚森.面向对象程序设计——Java[M].西安:西安电子科技大学出版社,2003.

FTP 篇5

目录运行机制用户分类使用方式传输方式收缩展开运行机制

FTP服务器

简单地说,支持FTP协议的服务器就是FTP服务器。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

匿名FTP

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。 匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。 通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。 值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。 当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

用户分类

Real帐户

这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

Guest用户

在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

Anonymous(匿名)用户

这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。 在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。

使用方式

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。 需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。 启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp://[用户名:口令@]ftp服务器域名:[端口号] (在CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器) 通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。 1.在本地电脑上登陆到国际互联网。 2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的`,上面有进入该主机或个人电脑的名称,口令和路径). 3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑。 4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东西或者下载别人授权共享的东西(这里的东西是指能放到电脑里去又能在显示屏上看到的东西). 5.完成工作后关闭FTP下载软件,切断连接。

传输方式

FTP的传输有两种方式:ASCII、二进制。 ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝。 二进制传输模式 在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。 如在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会损坏数据。(ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果传输二进制文件,所有的位都是重要的。)

★ 是否FTP验证端口决定传输端口

★ 宽带路由器死机掉线问题深度分析

★ 出现问题承认解决范文

★ 解决的近义词

★ 小学生粗心怎么解决

★ 如何备份FlashFXP里的FTP列表软件教程

★ servU FTP软件的攻击防守服务器教程

★ 如何解决cpu风扇声音大

★ 解决遗留问题的请示

万维网的HTTP和FTP协议 篇6

摘 要:20世纪40年代以来,人们就梦想能拥有一个世界性的信息库。在这个信息库中,信息不仅能被全球的人们存取,而且能轻松地链接到其他地方的信息,使用户可以方便快捷地获得重要的信息。1991年8月6日,伯纳斯·李发表万维网项目简介的文章。标志着万维网公共服务的首次亮相。1994年6月,中国新闻计算机网络(China News Digest,CND)将World Wide Web称为“万维网”。万维网联盟W3C理事会(World Wide Web Consortium,W3C)于1994年10月在麻省理工学院(MIT)计算机科学实验室成立。

关键词:万维网;WWW;HTTP;FTP;Web服务器

WWW(World Wide Web,3W,Web)中文译名为万维网,环球信息网等。是欧洲核物理研究中心(CERN)为全球范围的科学家利用Internet建立在客户机/服务器模型之上,为了方便地进行通信、交流和查询所建立的。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。万维网是一个分布式的超媒体(Hypermedia)系统,它是超文本(Hypertext)系统的扩充,所谓超文本是包含指向其他文档的链接文本,超文本是万维网的基础,在万维网中,主要使用了两个协议,分别是HTTP协议和FTP协议。

1 HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)提供了访问超文本信息的功能,是万维网与Web服务器之间的通信协议,属于应用层。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。可以用于传输各种超文本页面和数据。

HTTP协议包括以下4个步骤:

第一,建立连接。客户端向服务器发出建立连接HTTP报文的请求,服务端将响应发送回客户端,连接建立。

第二,发送请求。客户端按照HTTP协议通过连接线路向服务端发送请求。

第三,给出应答。服务器按照客户端的要求给出应答,将结果HTML文件返回给客户端。

第四,关闭连接。客户端接到HTTP报文请求后关闭连接。

HTTP协议是基于TCP/IP之上的协议,它不仅保证是否能够正确传输超文本文档,而且还要确定传输文档中的哪一部分,以及哪部分内容首先显示等。通常HTTP报文消息包括客户向服务器的请求报文和服务器向客户的响应报文。这两种类型的报文消息由一个起始行,一个或者多个头域,一个指示结束的空行和消息体组成。HTTP的报文结构包括通用首部、请求首部、响应首部、实体首部和实体主体五个部分。每个头域由<域名>,<:>和<域值>三部分组成。(注意:域名与大小写无关,可以在域值前添加任何数量的空格符,可将万维网的头域扩展为多行。)

通用域名首部包含请求和响应报文,其中的头域还包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via等。对通用头域的扩展要求通讯双方都支持,如果存在不支持的通用头域,一般将会作为实体处理。

一次HTTP操作其工作过程可分为以下几步:

第一,浏览器分析链接指向页面的URL。

第二,浏览器向DNS请求解析IP地址。

第三,域名系统DNS解析出微软服务器的IP地址。

第四,浏览器与该服务器建立TCP链接。

第五,浏览器发出HTTP请求GET。

第六,服务器通过HTTP响应把文件index.heml发送给浏览器。

第七,TCP连接释放。

第八,浏览器将文件index.heml进行解释,并将Web页显示给用户。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP采用TCP作为运输层协议,保证了数据的可靠传输,HTTP不需要考虑数据在传输过程中丢失后是怎样重传的,但是HTTP协议本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP链接。

2 FTP协议

文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议,FTP运行在TCP上采用客户/服务器模型,包括两个组成部分,分别为FTP服务器、FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于服务器上的资源。FTP使用20和21这两个端口,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,数据传输端口就是21。

FTP提供以下功能:

第一,提供不同种类的主机系统之间的传输。

第二,使用户对远程服务器上的文件进行管理。

第三,提供文件共享能力。

另FTP还有两种模式,主动方式Standard(PORT方式),被动方式Passive(PASV方式)。Standard模式下FTP客户端发送PORT命令到服务器。Passive模式下FTP的客户端发送PASV命令到FTP Server。

Port:FTP客户端与服务器的21端口建立控制连接,用来传输控制信息,客户端发送请求,通过控制连接发送给服务器端的控制进程。服务器通过自己的数据连接端口连接至客户端的指定端口并发送数据。

FTP服务器在很多情况下是不支持PASV模式的,因为很多防火墙在设置时,是不允许接受外部发起连接的,因而位于防火墙后或内网的客户端无法穿过防火墙打开FTP服务器的高端端口,故许多内网的客户端不能用PORT模式登陆FTP服务器,造成无法连接。

文件交换协议(File Exchange Protoco,FXP)相当于是FTP的控制器,也可以认为FXP本身其实就是FTP的一个子集,使一个FTP客户端控制两个FTP服务器,在两个服务器之间传送文件。FTP协议的任务是使计算机将文件传送至另一台计算机,它与这两台计算机所处的位置、联接的方式、是否使用相同的计算机操作系统均没有关系。例如,两台计算机通过FTP协议连接,并且能够成功地访问Internet,用户就可以使用FTP命令来传输文件。

其传输方式可分为两大类:ASCII传输和二进制数据传输。

ASCII传输模式:若客户端当时正在拷贝的文件中包含的简单ASCII码,在机器上运行的是不同的操作系统,当文件传输时,FTP协议通常会自动地调整文件的内容以便于将文件“翻译”成另一台计算机存储的文本文件格式,就是我们通常所说的翻译。但是时常会有这样的情况发生,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件等信息。那么这时,ASCII传输模式则会消耗大量的时间、资源进行翻译,与我们所希望的相去甚远,于是,出现了第二种传输方式,二进制传输。

参考文献:

[1]沈红,李爱华.计算机网络(第二版)[M].清华大学出版社,2010.

[2]谢希仁.计算机网络(第5版)[M].电子工业出版社,2011.

作者简介:周开强(1993—),男,黑龙江庆安人。

张广旭(1994—),男,辽宁建昌人。

FTP技术 篇7

1 基于Java Web应用的软件体系结构

基于web应用的B/S(Browser/Server)结构就是三层C/S (Cli-ent/Server)结构的Internet上的软件体系结构。在现有的3层软件体系结构中,客户层和数据层己被严格定义。与此相反,中间层并未明确定义,而且,中间层可以包括有与应用程序的界面和长久的数据存储无关的处理。我们所讨论的新的基于Web的3层体系结构集中在客户层和中间层。假定将中间层划分成许多服务程序是符合逻辑的,一个基于Web的应用程序又可将中间层划分成许多服务程序,这样将每一主要服务都视为独立的层,使得3层体系结构可变成N层体系结构。一个基于Web的应用程序一般包含如下几层:

1层,由Web浏览器实现的一个客户层的界面。

2层,由Web服务器实现的一个中间层的任务分配机制.

3层,由一些服务器端脚本(Script)实现的中间层服务。

4层,由关系数据库实现的数据层存储机制。

SSH2框架的详细设计:

SSH2 开发框架是遵从MVC设计模式的,将前台交互界面交给“视图层”处理,“控制层”实现分发逻辑请求,“模型层”负责业务逻辑的实现,并且在“模型层”与数据库之间实现了一个“数据交互层”,不再让每个模型层模块与数据库进行交互。

视图层由Struts2负责,使用JSP、HTML和Java Script语言进行交互。Struts2 处理所有用户的请求,然后把请求转发给Ac-tion代理并根据处理后的结果找到相应的视图资源,再把响应发送到客户端浏览器。

控制层使用Spring作为主控制器,负责把请求发送到不同的业务逻辑模块,并根据逻辑需要返回相应的视图层页面。使用XML配置文件,建立前台请求与控制层之间的映射。

模型层主要由Hibernate负责。它主要负责协调软件与数据的交互,提供管理持久化数据的完整方案,让开发者能够专注于业务逻辑的开发。

通过配置文件来管理,避免了更换数据库连接信息时对类文件的修改。数据交互层根据显示层提交的对象,首先对提交的数据进行封装,通过Spring配置来查找相应的数据库表对应的Hibernate。综上所述,Hibernate和Spring控制器的结合可以更加灵活的对数据集的操作进行自定义和封装,而且数据库的连接信息通过相关的配。

2 FTP大文件上传的设计与实现

2.1 JAVA FTP客户端库的选择

目前,已经有很多公开免费的FTP客户端类库,如sim-pleftp、J-ftp, ftpclient等。在本文中,采用是sun.net.ftp.Ftp Cli-ent.。这个是个开源的且功能十分强大的客户端FTP类库。该类库主要提供了用于建立FTP连接的类。利用这些类的方法,编程人员可以远程登录到FTP服务器,列举该服务器上的目录,设置传输协议,以及上传下载文件等。sun.net.ftp.Ftp Client.类涵盖了几乎所有FTP的功能,Ftp Client的实例变量保存了有关建立"代理"的各种信息。

2.2 登录FTP服务器

在开发一个Java Web应用过程中,选定了客户端类库之后,需要开发一个服务使用FTP功能连接到FTP服务器。Inet-Socket Address是Socket Address的实现子类。此类实现IP套接字地址(IP地址+ 端口号),不依赖任何协议。在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口,但Socket类中的connect方法并未提供这种方式,而是使用Socket Ad-dress类来向connect方法传递服务器的IP和端口。Socket Ad-dress只是个抽象类,它除了有一个默认的构造方法外,其它的方法都是abstract的,因此,我们必须使用Socket Address的子类来建立Socket Address对象,也就是唯一的子类Inet Socket Ad-dress。连接FTP的代码片段如下:

2.3 上传文件到FTP服务器

在上传文件过程中,首先需要到服务器的相关目录查看是否存相应目录,如果不存在则创建新目录,然后借助Telnet In-put Stream把该文件传送到本地。is Dir Exist(String file Path)函数是判断服务器是否存在相应目录,create Dir(String file Path)函数是创建新目录,然后通过change Directory(String file Path)函数把远程系统上的目录切换到参数file Path所指定的目录。将远程文件加入输出流中,获取本地文件的输入流,然后接下来就是简单的IO处理。值得注意的是最后应该坚持“谁打开的谁负责关闭”的原则,需要将输入输出流关闭,JAVA不比其它语言JVM启动就注定了它最大占用的内存大小,多个这种不能释放的流最终只能导致整个程序崩溃,如果是一个需要长期使用或者用户流访问量特别大的程序就这么一个流,那就是一个灾难。上传文件的代码片段如下:

2.4 关闭FTP连接

文件上传完成之后,就需要关闭相关的FTP连接,避免资源一直被占用,关闭之前需要通过is Connected()方法判断连接是否有效。关闭FTP的代码片段如下:

到这里为止,完成了向FTP服务器上传文件的功能。sun.net.ftp.Ftp Client可以帮助我们进行一些简单的ftp客户端功能:下载、上传文件。 但如遇到创建目录之类的就无能为力了,这种情况我们只能利用第三方源码。

3 结束语

深入理解FTP数据连接方式 篇8

一、FTP的工作原理

FTP (File Transfer Protocol, 文件传输协议) 的会话建立时包含了2个通道, 一个叫控制通道, 另一个叫数据通道。控制通道是与FTP服务器进行沟通的通道, 连接FTP和发送FTP指令都是通过控制通道来完成的。数据通道是与FTP服务器进行文件传输或列表通道。与其他网络服务不同的是FTP使用2个端口, 一个数据传输端口和一个命令端口 (也叫做控制端口) 。通常来说, 这2个端口代码是21 (命令端口) 和20 (数据传输端口) 。

二、FTP数据连接的工作方式

FTP服务器处理防火墙和其他网络连接问题时, 最常见的一个难题是明确主动FTP与被动FTP的区别, 以及如何完美地支持它们。FTP是仅基于TCP协议的网络服务, 而不支持UDP协议。在FTP协议会话中, 控制连接均由客户端发起, 而数据连接有2种工作方式, 下面分别详解这2种方式。

(一) FTP主动方式 (PORT)

1. 主动方式FTP的工作原理

客户端从一个任意的非特权端口N (N>1 024) 连接到FTP服务器的命令端口, 即21端口;然后客户端开始监听N+1端口, 并发送FTP命令“port N+1”到FTP服务器;接着服务器会从数据端口 (20) 连接到客户端指定的数据端口 (N+1) 。

针对FTP服务器前面的防火墙来说, 必须允许以下通信才能支持主动方式FTP:任何客户端端口到FTP服务器的21端口 (客户端初始化的连接Server←Client) ;FTP服务器的21端口到大于1 024的客户端端口 (服务器响应客户端的控制端口Server→Client) ;FTP服务器的20端口到大于1 024的客户端端口 (服务器端初始化数据连接到客户端的数据端口Server→Client) ;大于1024客户端端口到FTP服务器的20端口 (客户端发送ACK响应到服务器的数据端口Server←Client) 。基本连接过程如图1所示。

第1步, 客户端的命令端口与FTP服务器的命令端口建立连接, 并发送命令“PORT 1027”;

第2步, FTP服务器给客户端的命令端口返回一个“ACK” (应答代码) ;

第3步, FTP服务器发起一个从数据端口 (20) 到客户端先前指定的数据端口 (1027) 的连接;

第4步, 客户端给服务器端返回一个“ACK”。

2. 主动方式FTP分析

主动方式FTP面临的问题实际上在客户端, FTP的客户端并没有实际建立一个到服务器数据端口的连接, 只是简单地告诉服务器自己监听的端口号, 服务器再回来连接客户端这个指定的端口。对于客户端操作系统的防火墙来说, 这是从外部系统建立到内部系统客户端的连接, 通常来讲这是会被阻塞的。

(二) 被动FTP方式 (PASV)

为了解决服务器发起到客户的连接问题, 人们开发了一种不同的FTP连接方式——被动方式 (PASV) , 当客户端通知服务器处于被动模式时才启用。在被动方式FTP中, 命令连接和数据连接都由客户端发起, 这样就可以解决从服务器端到客户端的数据端口的入方向连接被防火墙过滤掉的问题。

1. 被动方式FTP的工作原理

当开启一个FTP连接时, 客户端打开2个任意的非特权本地端口 (N>1 024和N+1) 。第一个端口连接服务器的21端口, 但与主动方式的FTP不同, 客户端不会提交PORT命令并允许服务器来回连它的数据端口, 而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口 (P>1 024) , 并发送“PORT P”命令给客户端, 然后客户端发起从本地端口N+1到服务器的端口P的连接, 用来传送数据。

对于服务器端的防火墙来说, 必须允许下面的通信才能支持被动方式的FTP:从任何客户端端口到服务器的21端口 (客户端初始化的连接Server←Client) ;服务器的21端口到任何大于1 024的客户端端口 (服务器响应到客户端的控制端口的连接Server→Client) ;从任何客户端端口到服务器的大于1 024端口 (客户端初始化数据连接到服务器指定的任意端口Server←Client) ;服务器的大于1 024端口到远程的大于1 024的客户端端口 (服务器发送ACK响应和数据到客户端的数据端口Server→Client) 。基本连接过程如图2所示。

图2中各步行为具体过程描述为:

第1步, 客户端的命令端口与服务器的命令端口建立连接, 并发送命令“PASV”;

第2步, 服务器返回命令“PORT 2024”, 告诉客户端服务器端用哪个端口侦听数据连接;

第3步, 客户端初始化一个从数据端口到服务器端指定的数据端口的数据连接;

第4步, 服务器给客户端的数据端口返回一个“ACK”响应。

2. 被动方式FTP分析

被动方式FTP解决了客户端的许多问题, 但同时给服务器端带来了更多的问题。最大的问题是需要允许从任意远程终端到服务器高位端口的连接。幸运的是, 许多FTP守护程序, 允许管理员指定FTP服务器使用的端口范围。第二个问题是有的客户端支持被动模式, 有的不支持被动模式, 必须考虑如何能支持这些客户端。例如, Solaris提供的FTP命令行工具就不支持被动模式, 需要第三方的FTP客户端;大多数浏览器只在访问ftp://URL地址时才支持被动模式。

三、主动方式与被动方式的比较分析

主动方式FTP对FTP服务器的管理有利, 但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接, 而这个端口很有可能被客户端的防火墙阻塞。被动方式FTP对FTP客户端的管理有利, 但对服务器端的管理不利。因为客户端要与服务器端建立2个连接, 其中一个连到高位随机端口, 而这个端口很有可能被服务器端的防火墙阻塞。

FTP辅助高职机房教学初探 篇9

计算机实践教学是培养学生专业技能的重要教学过程, 在基于网络开放环境下的计算机教学中如何组织学生上机, 科学合理的布置作业, 督促学生又好又快的完成, 提高学生动手能力和创新能力是困扰计算机实践教学老师的一个问题。在有限的时间内使教学效果最大化是广大教育教学工作者多年来实践探索的目标。如何更好的利用计算机机房资源, 更好地组织计算机机房的实践教学, 是一个非常有实践意义的课题。

1 高职院校多媒体机房的教学特点与情况分析

当前大多数高职院校的机房管理有如下特点:

机房管理中为了增强稳定性, 减少维护工作量, 一般都选购带有还原保护系统的品牌机, 学生在使用时保存在计算机硬盘的资料会随着计算机的重新启动而被还原掉。学生下载的软件或所做的作业不能在机房的机器里保存。另外, 对于公共计算机房来说, 可能存在的问题是, 今天学生在这个机房上课, 而下次学生可能在另一个机房上课。因此, 学生大都采用自带U盘或其他存储设备的方式, 但允许使用U盘也容易带来病毒传播的问题。

教师在上课时可以通过自带的移动存储设备, 通过多媒体教学软件分发作业给学生。在大都情况下, 在学生完成作业后, 教师需逐台机器检查学生作业, 这样效率非常低。另外虽然可以通过多媒体教学软件来在线提交。但不同老师使用的教室里, 作业如何区别保存也是个问题。如果使用共享文件夹的方式也可以解决这个问题, 但需要使用SERVER版的操作系统如Windows server2003来解决连接数的问题, 且设置本身也是一个较大的工程。

从规范实践教学管理的角度出发, 实践教学的实验结果、实验数据, 也需要进行存档。那么如何建立起实践环节的教学档案是一个迫切需要解决的问题。

FTP (文件传输协议File Transfer Protocol) 是互联网上用来传送文件的协议, FTP服务器通过FTP协议给客户端提供文件传输服务。Serv_U是个专业的、功能强大的FTP服务器端软件, 操作简便, 利用它架设一个FTP服务器是非常容易的。可以利用现有网络机房设备, 使用Serv_U架设FTP服务器来解决这些问题。且不用额外附加投资, 目前已在我院机房采用这种方法辅助教学, 收到了很好的效果。同时我们为每位学生提供了网络存储空间, 学生可凭自己的账号和密码在校园内任何一台上网机器上管理维护自己的数据, 教师可在办公室、教室, 甚至家里上传和下载课件、上传作业和检查学生的实验作业。为老师和学生节省了购买移动存储设备的开销, 也为机房管理带来了便利。

2 Serv_U在机房教学中的部署

2.1 Serv_U的权限介绍

Serv_U权限设置非常灵活, 可以给每个用户或用户组添加一个或多个可访问的目录或虚拟目录, 可以根据需要设置每个目录的用户访问权限。文件和目录或子目录的权限有:Read、Write、Append、Delete、Execute、List、Create、Remove、Inherit等。

Read:是否允许用户能读 (下载) 文件;

Write:是否允许用户上传文件;

Append:是否允许断点续传;

Delete:是否能删除文件;

Execute:是否能执行文件;

List:是否能对目录内容进行浏览;

Create:是否能建立子目录;

Remove:是否能修改、删除、移动目录;

Inherit:子目录是否能继承上面设置的权限。

2.2 辅助教学配置思路

灵活使用用户组、目录、目录权限和文件权限等是实现的关键。可以按班级建立学生用户组、按课程建立教师用户组、用教工号和学号建立相应的用户。建立ftproot目录, 并在ftproot目录下分别建立pub子目录、lesson子目录、teacher子目录和students子目录。

pub子目录:公共程序子目录, 一般含有程序软件、课件和多媒体等, 提供软件、课件和多媒体文件等的共享下载服务。

lesson子目录:一般含有教师发布作业子目录、学生提交作业子目录等, 向教师和学生提供与作业有关的文件上传保存与下载服务。

Teacher和students子目录是供学生和老师使用存放个人文件的目录, 学生未完成的作业可以存在这个自己的空间中, 随着存储技术的发展, 可以给学生提供更大的空间, 待学生毕业后, 该空间中的资源可以刻成光盘赠予学生。

接下来对各子目录的使用权限进行设置, FTP文件服务器中的目录对上述用户分别提供“访问”、“读”和“写”权限;文件对上述用户分别提供“读”、“写”和“执行”, 具体权限的含义可以参看本文有关权限部分的介绍。

2.3 使用和管理方法

用户访问FTP服务器操作非常简单方便, 在客户端不需要另外安装任何的客户端程序 (也可以使用专业的FTP客户端程序) , 只需要在浏览器地址栏输入FTP://服务器IP地址, 根据提示或选择“文件”菜单“登陆”命令后分别输入用户名和对应的密码就可以进行上传、下载文件, 可与本地的硬盘一样进行拖动操作。使用该方法, 教师和学生的电脑只要能与FTP服务器联网, 就能够访问和管理自己的文件目录了。

Serv_U本身支持远程管理, 可以通过在远程机器上安装Serv_U软件并配置远程服务器, 可以实现对Serv_U的远程管理。也可将将Serv_U的用户数据信息存储于数据库, 建立ODBC与Serv-U的连接, 编写WEB应用程序实现用户的添加、删除、修改等基本操作, 给Serv-U用户的远程管理及FTP服务器管理都带来了很大的方便。

3 结论

通过实践, 使用Serv_U建立FTP服务器, 性能稳定, 操作简单。实践证明, 对辅助计算机类实践教学能够收到非常好的效果。

3.4 语音导航音质不够清晰

客户拨打电话通常要求声音响亮音质清晰, 但在实际使用过程中, 不少客户感觉中国电信自动语音导航的语音音质不够清晰响亮, 常出现杂音, 影响人的视听效果和通话情绪。

4 结论

在技术全面发展, 业务全面更新的形势下, 呼叫中心语音导航的地位更加突出, 作用更加明显。中国电信呼叫中心在业务操作是否简易、业务介绍是否全面、等待接入过程处理是否令人愉悦等方面还存在一些不足, 中国电信必须重视这些问题, 力求迎合客户的心理需求, 及时作出调整, 以期在新技术、新业务蓬勃发展的今天, 获得更多客户的认可, 从而在竞争中处于更有利的地位。

参考文献

[1]薄静仪, 张帅, 等.网络服务器在教学中的应用[J].中国环境管理干部学院学报, 2007 (3) .

[2]刘荣立, 季林.利用Serv_U实现高校公共机房文件网络存储[J].教育信息化, 2006 (13) :77-78.

[3]余明华.利用Serv-U实现实验室FTP文件管理[EB/OL].http://www.xinxijishu/2006.

FTP文件搜索引擎的实现(一) 篇10

1 问题简介

以单位内部文件共享为例子, 假设有若干个FTP服务器分布在单位内部, 通常情况下, 一般用户要实现从FTP上找到并下载文件, 至少需要记住FTP服务器的地址, 使用客户端登录到FTP, 找到文件所在路径和文件位置, 下载文件, 这虽然并不算复杂, 但如果FTP规模较大, 要方便找到自己需要的文件仍然不是一件容易的事情, 另外, 如果FTP数量众多, 那就更雪上加霜。使用比较高级的FTP客户端例如Flash FXP等商业软件可以使用其文件搜索功能, 相比IE等, 这已是一个飞跃, 但这同时又对使用者的计算机水平提出了更高要求。因此, 笔者认为构造一个Web上的FTP搜索引擎是一个比较好的方案。

2 总体架构

方案大体由两部分构成:服务器端的信息采集工具及基于ASP.NET的Web APP。其中服务器端信息采集工具用于将FTP上的文件信息转换到数据库中 (笔者使用SQL Server作为数据库引擎) , 而Web APP则提供用户通过浏览器访问FTP搜索引擎的界面。这里需要指出, 笔者在这里假设了用户对搜索结果的实时要求并不特别高, 因为从方案中可以看出, 服务器端采集工具得到的结果显然与用户通过浏览器搜索时FTP上的实时结果并不完全同步, 通过设置信息采集工具的运行频率可以使同步程度有所提高, 一般来说, 用户更关注的是搜索的快速和文件获取的便捷, 可以接受一定程度的同步延迟。

3 数据库

不管是服务器端的信息采集工具还是Web APP都要用到数据库, 下面详细介绍本实现方案中的数据库设计。考虑到后续编程的便捷性及本应用的规模等因素, 事实上该数据库相对较简单, 其中只有两张表File Info表及Setting表, 其中File Info表记录了每一个FTP文件的相关信息, 注意, 可能有多个FTP站点, 所有站点下的所有文件信息都记录在File Info表中, 其具体字段定义如表1所示。

这里须注意filepath字段记录了包括文件名和FTP站点信息在内的文件完整路径, 虽然这有些冗余, 但考虑应用程序的规模和编程的便捷性, 这是可以接受的, 由于这个字段可能很长, 因此使用了nvarchar (max) 来定义, max是SQL Server可接受的最长字符串长度。

Setting表记录了当前数据库的状态, 具体字段定义如表2所示。

请注意, Setting表事实上只有一条记录, 也可以利用磁盘文件来保存这些数据库状态信息, 将其作为数据库的一个表只是考虑到Web APP访问File Info表时可一并读取此表, 省去了Web APP去读取本地文件的操作。附带的源代码中Create Table.sql就是用于生成这两个表的脚本, 供读者参考。

4 服务器端信息采集工具

下面描述服务器端将FTP文件信息转换到数据库中的信息采集工具的实现。这个程序不需要界面, 笔者用C#设计了一个Cosole App, 其基本流程如下

(1) 读取FTP站点信息。

(2) 对每个FTP站点, 遍历所有目录, 对目录下的文件, 获取文件名、路径、大小、修改日期等信息后写入文本文件。

(3) 遍历所有站点并依次将ftp文件信息写入文本文件。

(4) 将所得的文本文件整体导入到数据库File Info表。

(5) 如果一切正常则更新Setting表的state字段和lastupdate字段, 如果上面任何步骤出错, 则设置Setting表state字段。

这里值得说明的是, 由于FTP站点下文件众多, 如果每找到一个文件, 就将这个文件的信息利用Insert语句插入到数据库中必然效率低下, 由于笔者采用了SQL Server数据库, 可以使用SQL中的Bulk Insert技术, 所谓Bulk Insert是利用本地文件将大量数据条目一次性地存入数据库的技术, 其基本语法如下:

Bulk Insert[数据库名.数据表]from‘本地文件名’

其中本地文件中有若干数据行, 每行对应到插入数据库的一条记录, 在一行中利用空格分隔成若干数据字段, 每个字段对应了要插入的数据表中的字段, 例如本文的例子中, 这个本地文件的某行类似下面的例子:

1地址.txtftp://abc:efg@xxx:21/公共下载/地址.txt622010-3-16 0:00:00公共下载

其分别对应了File Info表的各个字段, 利用Bulk Insert语句, 数千行的文件也只须几秒就可插入到数据库中。

另外, 信息采集定时进行, 每次采集时对于上一次采集的数据的处理, 笔者采用的方式是直接全部删除并重新导入, 这样做比起检测每条记录的有效性来说实际更为高效, 但这样做也存在一个问题, 即每次采集后数据库日志都会显著增大 (由于Delete和Insert大量记录) , 事实上数据库日志在本应用中并无太大作用, 为了防止日志不断扩大, 在每次信息导入后可以使用下面的语句来压缩日志dbcc shrinkfile[数据日志文件名]

下面列出部分源代码:

代码中有两个问题需要说明: (1) 开发机器上通常使用了SQL Server Express, 其实例一般为.SQLEXPRESS, 而部署到实际运行的机器上时通常使用SQL Server, 此时实例名就是., 因此代码中为了开发和部署的方便对此进行了特殊的处理。 (2) 代码中使用了Ftp Lib库及若干自定义的解析FTP文件信息的函数, 限于篇幅这里不详细解释, 读者有兴趣可参考笔者发表在本刊2011年10月上半月刊上的文章《如何解决FTP服务器的list指令解析中的问题》并结合附带的源代码来理解。

5 结语

FTP技术 篇11

【关键词】FTP机制;差额资金管理;全额资金管理

在我国,一直以来绝大数商业银行实行的都是差额定价的资金管理方法,由商业银行的分支机构自主筹集资金。分支机构根据自身的盈余或亏损,向上一级银行存入或借入资金。在这一过程中,总行负责制定内部资金的借款利率。但这种资金管理方式存在缺陷,具体表现为:一方面,总分行在业绩考核中口径不一致评;另一方面,商业银行分支机构面临严重的利率风险;最后,市场利率与银行内部资金利率不匹配。随着我国利率市场化进程不断加快,商业银行内部资金管理要求的提高,商业银行更有必要实行内部资金转移定价机制。

内部资金转移定价(Funds Transfer Pricing)是指,商业银行内部资金中心按照规定向各业务部门全额有偿转移资金,从而实现核算业务资金成本或收益等目的。在这一过程中,存款部门吸收的每一笔资金,以该业务的FTP价格全额出售给资金中心;贷款部门贷出的每笔资金,以该业务的FTP价格全额向资金中心购买。我们把FTP模式下的资金管理称为“全额资金管理”,把原来的总分行间资金轧差后的上存下借称为“差额资金管理”。与原来的资金管理模式相比,实施FTP会给商业银行主要会给商业银行带来以下四个方面的变化:

一、盈利模式的变化

差额资金管理模式下,分行账面净利差有两部分构成:客户端产品的净利差收入(最主要的是存贷款利差收入)、辖内上存下借的净利差收入。全额资金管理模式下,分行的FTP净利差也是由两部分构成:资产的FTP利差和负债的FTP利差。其中,资产的FTP利差=资产的客户端利息收入—资产的FTP转移支出,负债的FTP利差=负债的FTP转移收入-负债的客户端利息支出。

差额资金管理模式下分行的盈利水平和全额资金管理模式下分行的盈利水平将有所不同。概括起来说,在差额资金管理模式下,一般而言,多放贷多收益,少放贷少收益,存贷比的高低是决定分行盈利水平的最重要因素。在全额资金管理模式下,分行则可以根据自身资金禀赋优势开展业务,存贷比高低已不是盈利水平的最重要因素。

二、利率风险管理结构的变化

差额资金管理模式下,分行主动匹配自己的资金来源与运用,并承担由此带来的利率风险,因此,各分行均需要自主管理本行的利率风险,总行负责对分行利率管理提供指导。全额资金管理模式下,利率风险由分行转移到了总行资金管理中心,对总行利率风险的管理能力提出了更高的要求,相比而言,分行管理利率风险的职能得到弱化,因此,总行需要建立一套完善的利率风险管理机制。

商业银行全面实施FTP,依靠FTP进行资产负债结构调整及业务定价指导。一方面,总行承担了更多的利率风险管理职能,这样分行就可以投入更多的精力进行业务创新、市场开拓、客户服务等方面的工作。另一方面,这将有效分离分行的利率风险,使负债能够获得应有的收益,资产承担应付出的成本,这样所有分行都在统一的规则下参与绩效考评,考评结果更科学、更合理。

三、资产负债管理方式的变化

差额资金管理模式下,总行的资产负债管理是通过调整分行的比例指标、辖内资金价格或对分行下达行政命令,由分行调整具体业务,最终实现总行的资产负债管理意图。这种管理模式以分行为中介,间接作用具体业务。

全额资金管理模式下,资产负债管理是通过总行直接调整某类业务的FTP转移价格,达到调控的目的。这种通过FTP转移价格直接作用于具体业务的调控模式,可以将总行的管理意图直接传递至分行业务人员,并且对所有的分行一视同仁,充分体现了公平性,但对分行的素质提出更高的要求。不但要求分行的传导力度强,而且业务人员对FTP转移价格有充分的认识。

四、分行流动性管理的变化

差额资金管理模式下,分行根据自己的资金来源匹配资金运用,分行管理自己的流动性,流动性充裕时,向上一级银行上存资金;流动性不足时,向上级银行借出资金。总行负责逐一平补分行头寸,统一调剂全行资金盈缺,确保全行流动性安全。因此,差额资金管理模式下的流动性管理看成是总分行两级流动性管理体制。全额资金管理模式下,分行的每一笔资金来源均以FTP转移价格卖给了总行的资金管理中心,每一笔资金的运用均需要从总行的资金管理中心以FTP价格购买,这一过程,资金只是在分行体系内流动。

综上所述,我们可以看出在全额资金管理模式下,总行将承担更大的资金管理职能;分行在总行的授权下,以全行流动性安全为目标进行自身资金头寸的管理,总分行资金管理目标高度一致。在全额资金管理模式下,分行更应该关注自身资金头寸的变化及预期,树立高度的大局意识和责任感,严格遵守总行的相关制度,确保全行资金流动性安全。

参考文献:

[1]刘彬. 中小商业银行构建内部资金转移定价体系探讨.金融经济.2011(2)

[2]赵景明. 浅谈我国商业银行的内部资金管理.华北金融.2006 (4)

FTP技术 篇12

信息技术是一门操作性很强的课程, 几乎每节课都会涉及到课堂练习提交的问题, 我们不可能只凭一份终结测试题就给出学生的学习成绩。因此应该把对学生学习和评价从行为注意转向认知注意, 注重过程性评价, 将评价整合到学生们日常的学习活动中, 对“做”的过程进行测量, 这也作为平时成绩或作品以电子档案袋的形式保留下来。尤其电子报刊和网页制作不是一次能完成的, 单纯的多媒体控制软件不便于反复修改和保密。

目前学生提交的课堂练习和作品一般有以下四种方式:

其一, 通过网络教室局域网的“网上邻居”在教师机上创建一个完全共享的文件夹进行收、交。但这种情况下, 时常遭遇个别学生抄袭他人作业或恶意删除整个文件夹等事件, 存在很大的安全隐患。

其二, 通过Internet传到教师的博客、邮箱、论坛或网络硬盘上。有时会受到外网网速或作品大小和格式等限制。

其三, 通过多媒体控制软件接收学生的作业。虽然解决了保密问题, 但只能是接收当节课的, 不便于反复修改。

其四, 借助FTP服务器的管理模式。这种管理模式需要给每位学生分配账号和密码, 也可以限制在本教室局域网。这样每位学生的所有作品或作业都保存在自己的文件夹中, 便于多次下载、修改之后再上传保存。因而, 它是一种行之有效的电子档案袋评价方法。

信息技术教师往往一个人执教一个年级课, 多达几百人的信息难以一个个输入。从教务处拷贝到的学生EXCEL文件名册, 能不能批量导入学生的信息呢?回答是肯定的。下面笔者就抛砖引玉介绍一种用FTP管理学生电子档案袋的方法, 希望对大家有实际帮助。

一、FTP服务器的设置

Serv-U是一种被广泛运用的FTP服务器端软件, 支持Windows系列, 可以设定多个FTP服务器、限定登录用户的权限、登录主目录及空间大小等, 功能非常完备。

第一步, IP地址和端口设置。

假设FTP服务器在网络教室局域网中, 安装好ServU软件, 这里设置内网IP地址为“192.168.4.12”, FTP端口为“21”, 如图1所示。

第二步, 基本权限设置。

Serv-U用户属性的“目录访问”选项包括文件的“读取”、“写入”、“追加”、“删除”、“执行”、目录的“列表”、“建立”、“删除”和子目录的“继承”, 全部默认勾选 (如图2) 。

第三步, 设置最大用户数和每个用户分配的空间。

Serv-U在本地服务器“设置”中的“常规”选项可设置最大上传速度、最小下载速度和允许同时连接到本服务器的最多的用户数目。这里根据人数设为“500” (如图3) 。

第四步, 用户属性的“配额”。

在Serv-U用户属性的“配额”选项中勾选“启动磁盘配额”同时可设最大上传空间, 如:“10240”KB。如图4。

第五步, 用户和组的建立。

不同的年级可以设置成若干个组。这里笔者以一个年级为例, 所有的学生在此组内 (批量生成) , 在这里每个学生可以自行设置个人密码 (如图5) 。

二、用户名和属性的批量生成和导入

第一步, 停止服务器的运行。

按下“停止服务器 (s) ”以终止服务器的运行 (如图6) 。

第二步, 把学生的全部信息按下列EXCEL表格进行排列, 按公式生成序号和路径 (如图7) 。

其中:前两位01, 02, ……为班级, 也可按学号排列, 后两位01, 02, ……49, 为班里的排序。

d:zyq1张三, “d:”为要保存的那个盘符 (请注意:英文输入下的冒号) , “zyq”要保存的该盘符下的文件夹为zyq, 01为zyq文件夹下的班级文件夹, 现在是01班, “张三”为01班文件夹下的学生姓名。也就是说把学生作业保存在d:盘zyq文件夹下按班级01, 02, 03……分别存放的。

第三步, 先保存, 再在菜单“工具”→“宏”→“VB编辑器”中输入如下代码:

说明:第一段为常改的内容, 第二段如果保持密码不变不要变, 追加其他年级只要第一段改变即可。

第四步, 运行VB中的子过程 (点击箭头) , 生成的运行文件在“D:Program FilesServ-U”的asdf.ini中, 将其打开并拷贝到该文件夹下的“ServUDaemon.ini”[Domain1]下方, 保存。注意:如添加其他年级可再增加一个[Domain2], 同样将其运行的asdf.ini拷贝到[Domain2]下方, 然后保存。

第五步, 恢复服务器的运行。

第六步, 每个人自行设置密码。

当然, 每个人都自己在服务器上设置密码工作量很大, 若为每人预设, 则学生必须在DOS下去修改。经考虑权衡, 可以让每位学生在纸上写出自己的密码, 由教师统一输入。

三、客户端修改FTP密码

上面已提到在DOS下可以在客户端修改FTP个人密码。只要服务器统一预设一个密码, 可使用客户端软件修改密码 (注意:客户端改密码的前提是您所使用的这台服务器开放了客户端修改FTP密码的权限) :一般学生机上都安装有软件或硬件保护卡, 不便于再安装其他软件, 所以最好用Windows自带的工具修改FTP密码。方法如下:

第一步, 在“开始”→“运行”中输入“ftp”后按回车运行, 看到提示符“ftp>;”。

第二步, 输入命令“open ancool.com”, 按提示输入User (用户名) 、Password (密码) (注意:屏幕并不显示您输入的密码) , 屏幕上出现“230 User logged in, proceed.”表示已连接成功。

第三步, 输入命令“quote site pswd旧密码新密码”回车, 屏幕上出现230 Password changed okay。表示密码已经修改成功。

第四步, 输入bye, 退出。

总之, 使用FTP服务器管理学生的电子档案袋, 学生拥有自己的账号和密码, 避免了抄袭和删除的可能, 具有安全、数据量大、便于反复修改、有效上传下载的特点, 简单又实用。这种批量导入的管理思想源于一位协助笔者管理网络教室的学生。这种思路完全可以在校园网或有独立IP地址做FTP服务器的外网上实现家校沟通。

参考文献

[1]中小学信息技术教师之家.http://www.gaopeng.com

上一篇:人民代表大会制下一篇:纤维支气管镜介入