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

2019-09-01 22:28

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim strData As String

Winsock1.GetData strData

If Left(strData, 3) = \ ‘若命令连接成功

Login ’登录

End If

If Left(strData, 3) = \ ‘若成功进入PASV方式

MakeDataConnection strData ‘建立数据连接

End If

End Sub

Private Sub Login()

Winsock1.SendData \ ‘发送用户名

Winsock1.SendData \ ‘发送密码

End Sub

Private Sub Setpasv()

Winsock1.SendData \ ‘设置PASV方式

End Sub

Private Sub download_Click()

ChDir \ ‘改变客户端工作目录

Winsock1.SendData \ ‘改变服务器工作目录

Setpasv

Winsock1.SendData \ ‘下载

End Sub

Private Sub upload_Click()

downorup = \

Setpasv

End Sub

Private Sub Winsock2_Connect()

If downorup = \ ‘上传文件,数据连接建立后发送数据

Dim a As String

Dim MyString As String

ChDir \

Open \

Do While Not EOF(1)

Line Input #1, a

MyString = MyString + a + Chr(13) + Chr(10)

Loop

Close #1

Winsock2.SendData MyString & vbCrLf

End If

End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)

Dim strData As String ‘服务器从数据连接传来下载文件的数据时,保存到本地文件系统中

Winsock2.GetData strData

ChDir \

Open \

Print #1, strData

Close #1

End Sub

Private Sub MakeDataConnection(sData As String)

Dim iPos As Integer, iPos2 As Integer

Dim strDataAddress

iPos = InStr(1, sData, \ ‘获取IP地址

For i = 1 To 4

iPos2 = InStr(iPos, sData, \

strDataAddress = strDataAddress & Mid(sData, iPos, iPos2 - iPos) & \

iPos = iPos2 + 1

Next

strDataAddress = Left(strDataAddress, Len(strDataAddress) - 1)

Dim i1 As Single, i2 As Single, inPort As Single ‘计算端口号

iPos = iPos2 + 1

iPos2 = InStr(iPos, sData, \

i1 = CSng(Mid(sData, iPos, iPos2 - iPos))

iPos = iPos2 + 1

iPos2 = InStr(iPos, sData, \

i2 = CSng(Mid(sData, iPos, iPos2 - iPos))

inPort = i1 * 256 + i2

If Not Winsock2.State = sckConnected Then

Winsock2.Close

End If

Winsock2.Connect strDataAddress, inPort

End Sub

Private Sub Winsock2_SendComplete()

ChDir \ ‘上传文件数据通过数据连接发送完后,通知服务器接收并保存到其文件系统中

Winsock1.SendData \

Winsock1.SendData \

Winsock1.SendData \

Winsock1.SendData \

End Sub

该程序在Windown 98下通过Micosoft Visual Basic 5.0编译执行成功,服务器是运行在Windown 98下的Seuver-U FTP软件。对其他不同文件系统间的FTP,应根据RFC 959文档对程序进行适当的修改,这里不再叙述。

四 结束语

在铁路各信息系统中,数据的传输是其中重要的一部分。有些系统在总体设计和编程时没有充分考虑数据传输部分,通过安装FTP软件用手工方式进行数据传输,不但降低了效率,还会出现数据漏传,丢失等现象。在总体设计充分考虑数据传输部分,并在编程时将FTP内嵌到应用程序中,这样可以提高传输效率和质量。


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

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

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

马上注册会员

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