VB.NET FTP传输及Win7下的FTP服务配置
Posted lc__________
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB.NET FTP传输及Win7下的FTP服务配置相关的知识,希望对你有一定的参考价值。
FTP是File Transfer Protocol的英文简称,中文是文件传输协议。
我们可以通过一个支持FTP协议的客户端程序,连接到远程主机上的FTP服务器,上传或者下载文件。
TCO/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。
FTP的任务是从一台计算机将文件传送到另一台计算机上,并不受操作系统的限制。
首先我们来进行一下Win7下的FTP服务的配置。
我们先新建访问FTP的用户。右键点击计算机,点击管理,进入本地用户和组中,新建用户。
控制面板-->程序和功能-->打开或关闭Windows功能
勾选上Internet信息服务中的全部。
控制面板-->管理工具
双击打开Internet信息服务(IIS)管理器。
在Internet信息服务(IIS)管理器中左边的网站上右键,点击“添加FTP站点”。
在站点信息中输入FTP站点名称和物理路径。点击下一步。
在绑定和SSL设置中,添加FTP服务器的IP地址。勾选自动启动FTP站点。SSL选“无”。点击下一步。
在身份验证和授权信息中,身份验证勾选基本。点击完成。
按Win + R 打开运行,输入services.msc打开服务窗口,找到Microsoft FTP Service,启动服务。
回到Internet信息服务(IIS)管理器中,右键点击新建的FTP站点,启动FTP。
Internet信息服务(IIS)管理器-->FTP授权规则-->编辑权限-->安全-->编辑-->添加。在选择用户或组中输入用户名,然后点击确认。在权限窗口中勾选完全控制。
Internet信息服务(IIS)管理器-->授权规则-->添加允许规则,
在指定的用户中输入之前新建的用户名。权限中的读取、写入都勾选上
在开始菜单中输入window然后找到windows防火墙,点允许程序或功能通过windows防火墙
在允许程序通过windows防火墙通信中选择FTP服务器,点击下方的“允许运行另一程序”,在弹出窗口里,点“浏览”,找到C:\\Windows\\System32\\inetsrv\\inetinfo.exe,点添加,也就是上图中的Internet Infomation Services。将后面的两个框也都选中。因为在Win7下,FTP是IIS的一个组件,因此也必须在防火墙中将IIS设置为允许。而IIS又不在默认的列表中,因此得手动添加。
在windows防火墙中点高级设置,在入站规则中点新建规则,选中端口,点下一步。
在特定本地端口中输入21,点下一步。点击允许连接,点击下一步。
域、专用、公用都勾选上。点击下一步。
名称和描述都输入21,点击完成。
在地址栏输入ftp://加上FTP服务器的IP地址,会出现登录框,输入用户名和密码,登录成功则说明我们的FTP服务器配置成功啦。
配置过程参考了http://www.2cto.com/os/201409/337804.html
FTP收发文件
配置好了FTP服务器,我们就可以利用FTP协议收发文件啦。
创建远程目录
Private Sub MkFtpDir(ByVal path As String, ByVal ftpUsr As String, ByVal ftpPwd As String)
Dim ftpReq As System.Net.FtpWebRequest = Nothing
Dim ftpRes As System.Net.FtpWebResponse = Nothing
Try
ftpReq = System.Net.WebRequest.Create(path)
ftpReq.Credentials = New System.Net.NetworkCredential(ftpUsr, ftpPwd)
ftpReq.Method = System.Net.WebRequestMethods.Ftp.MakeDirectory
ftpReq.KeepAlive = False
ftpReq.UsePassive = False
ftpReq.Timeout = 1000
ftpRes = ftpReq.GetResponse()
ftpRes.Close()
Catch ex As Exception
End Try
End Sub
本地上载文件到FTP服务器
MkFtpDir("ftp://192.168.0.197/21020408", "liuchuan", "1q2w3e4r")
Dim wc As System.Net.WebClient = Nothing
wc = New System.Net.WebClient()
wc.Credentials = New System.Net.NetworkCredential("liuchuan", "1q2w3e4r")
Dim responseArray As Byte() = wc.UploadFile("ftp://192.168.0.197/21020408/20160125_142843_828256.tif", "E:\\ftp\\21020408\\20160125_142843_828256.tif")
Application.DoEvents()
wc.Dispose()
获取ftp服务器上存在的文件名
ftpReq = System.Net.WebRequest.Create(path)
ftpReq.Credentials = New System.Net.NetworkCredential(ftpUsr, ftpPwd)
ftpReq.Method = System.Net.WebRequestMethods.Ftp.ListDirectory
ftpReq.KeepAlive = False
ftpReq.UsePassive = False
ftpReq.Timeout = 1000
ftpRes = ftpReq.GetResponse()
'获取ftp的返回值
Dim strContent As String = ""
Dim content(1024) As Byte
Dim index_a As Integer = 0
Dim bufferLen As Integer = 0
index_a = ftpRes.GetResponseStream.Read(content, 0, content.Length)
bufferLen = bufferLen + index_a
While index_a > 0
index_a = ftpRes.GetResponseStream.Read(content, 0, content.Length)
bufferLen = bufferLen + index_a
End While
strContent = strContent & System.Text.Encoding.UTF8.GetString(content, 0, bufferLen)
MessageBox(strContent)
以上是关于VB.NET FTP传输及Win7下的FTP服务配置的主要内容,如果未能解决你的问题,请参考以下文章