以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]ftp端口问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193296)

--  作者:chnfo
--  发布时间:2024/9/2 19:21:00
--  [求助]ftp端口问题
用本机做FTP服务器,用cmd-ipconfig查到本机的IP地址。
在我的电脑-管理中增加一个ftp网站,设置端口=220
在防火墙中-高级设置-入站规则中,设置本地端口=220

在文件管理器中,输入ftp://localhost:220,可以访问到绑定的文件夹

但执行
Dim ftp As New FtpClient
ftp.Host = "192.168.1.9"  \'这是本机IP
ftp.Account = "KDFTPUser" \'这是专为ftp设置的一个账号
ftp.Password = "KDNY"  \'这是ftp账号对应的密码
If ftp.Connected = False Then\'如果FTP没有连接
    If ftp.Connect Then \'连接FTP
        Output.Show("OK")
    Else
        Output.Show("没连上")    \'这是命令窗口运行的结果
    End If
Else
    Output.Show("NO")
End If 

但是,如果把端口号改为21,命令窗口执行的结果是“OK”

是ftp只能是21端口吗?

--  作者:有点蓝
--  发布时间:2024/9/2 19:35:00
--  

ftp.Port = 220

--  作者:chnfo
--  发布时间:2024/9/3 12:53:00
--  
Dim s As String = FileSys.ReadAllText(".\\kdinix.txt", Encoding.Default)  \'把ftp有关的信息写入配置文件
For Each x As String In s.Split(chr(10))
    Dim y As String() = x.Split(":")
    Vars(y(0)) = y(1)  \'定义了全局变量
Next

Dim ftp1 As New FtpClient
ftp1.Host = Vars("Safe_FTPAddress") \'"192.168.1.7"
ftp1.Account = Vars("Safe_FTPUser") \'"KDFTPUser"
ftp1.Password = Vars("Safe_FTPPW") \'"KDNY"
ftp1.Port = Vars("Safe_FTPPort") \'2200
output.Show(ftp1.Host & ";" & ftp1.Account & ";" & ftp1.Password & ";" & ftp1.Port)
If ftp1.Connected = False  Then\'如果FTP没有连接
    If ftp1.Connect Then \'连接FTP
        ftp1.OpenManager() \'如果连接成功,打开FTP客户端
    Else
        output.show("连接FTP失败!")
    End If
End If

命令窗口运行结果是:
192.168.1.7;KDFTPUser;KDNY;2200
连接FTP失败!

但如果把ftp1.Host = Vars("Safe_FTPAddress") 改为 ftp1.Host ="192.168.1.7"
以及把其它的参数不使用全局变量,运行结果又是成功的

是ftp的参数不能使用vars?

--  作者:有点蓝
--  发布时间:2024/9/3 13:42:00
--  
肯定可以使用全局变量的。估计是全局变量里存储的内容不正确。或者有空格回车符等