在vb中利用Winsock控件实现FTP编程

2019-09-01 22:28

利用Winsock控件实现FTP编程

一 引言

随着计算机在铁路各部门的普及,办公无纸化逐渐成为一种趋势,文件、资料、报表等数据的传送都通过计算机网络来完成。FTP成为传送这些数据的流行工具。为了更好地使用FTP,应该了解和掌握FTP编程。只有把FTP内嵌到应用程序中去,FTP的应用才更灵活,才能满足各种数据传输的需要。本文以VB中的Winsock控件为工具,根据FTP的基本原理,阐明了FTP客户端编程的一般方法。

二 FTP客户端与服务器间的基本协作过程

下面是FTP模型的基本原理图:

服务器数据传输进程

客户端数据传输进程

文件系统

服务器协议接口

客户端协议接口

用户界面 用户

FTP命令

FTP响应

数据连接

文件系统

服务器FTP 客户端FTP

1、客户端与服务器连接

FTP是建立在TCP之上的连接,端口号使用21。若客户端与服务器之间成功连接,服务器将返回字符串,如:

220 GMS (Version 5.0)

前三个字符220表示客户端与服务器成功连接,后面的字符会因服务器的不同而不

同,但我们只关心前三个字符。

2、用户名和密码认证

客户端发送用户名给服务器,如:

USER guo

如果服务器找到用户名guo,将返回字符串,如:

331 User name okay, need password.

接着客户端应发送密码给服务器,如:

PASS aaa

密码正确,返回如:

230 User logged in, proceed.

如果用户名或密码认证没通过,返回如:

530 Not logged in.

用户名也可以使用匿名,如:

USER anonymous

返回如:

331 Anonymous access allowed,send identity (e-mail name) as password.

3、建立数据连接

FTP协议用两个连接来达到客户机与服务器之间交换数据的目的。刚才建立了第一个连接——控制连接,它用于传送命令和响应。我们还要建立第二个连接——数据连接,用于数据传输。FTP提供了两种方式来建立数据连接,一种用PORT命令,一种用PASV命令。我们使用后者。客户端发送PASV命令给服务器,服务器返回IP地址和端口号,用来提供给客户端进行数据连接。如:

227 Entering Passive Mode (10,175,125,49,9,17)

括号里6个数字中前4个数字表示IP地址10.175.125.49,后2个数字表示端口

号,这2个数字按如下公式计算端口号:

9*256+17=2321

这样,客户端就可用IP地址10.175.125.49和端口号2321连接服务器,建立数据连接。

4、其它相关的命令及响应

● LIST命令

该命令用于获取FTP服务器的目录列表,服务器操作成功后返回:

150 Opening ASCII mode data connection for /bin/ls.

目录列表要通过数据连接进行传输,若数据连接没有准备好,则返回:

425 Can’t open data connection.

目录列表传到客户端后,返回:

226 Transfer complete.

● CWD命令

该命令用于改变服务器的工作目录。如:

CWD BOOKS

服务器操作成功返回:

250 Directory changed to /c:/BOOKS.

若没有找到该目录,返回:

550 /c:/BOOK: No such file or directory.

● RETR命令

该命令用于文件下载。如

RETR a.txt

服务器返回:

150 Opening ASCII mode data connection for a.txt (124 bytes).

226 Transfer complete.

● STOR命令

该命令用于上传文件。如:

STOR b.txt

服务器返回:

150 Opening ASCII mode data connection for b.txt.

以上阐明了客户端与服务器间的基本协作过程,完整的FTP协议请参阅RFC 959文档。

三 程序实例

根据上述FTP的基本原理,利用VB中Winsock控件提供的TCP连接功能,下面举一简单的实例。该例子只实现从服务器(IP地址为10.175.125.49)C:\\b目录下载文本文件a.txt到客户端C:\\a目录,从客户端C:\\a目录上传文本文件b.txt到服务器C:\\b目录。设服务器用户名为aaa,密码为aaa。

建立VB工程,添加两个Winsock控件:Winsock1和Winsock2,Winsock1用于命令连接,Winsock2用于数据连接。添加两个命令按扭:download和upload,download 用于下载,upload用于上传。

程序代码具体如下:

Dim downorup As String

Private Sub Form_Load()

Winsock1.Connect \ ‘建立命令连接

End Sub


在vb中利用Winsock控件实现FTP编程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:防汛安全培训试题(附答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: