再问:FTP连接问题

dongshanyu 2006-08-25 03:27:33
连接一个FTP服务器TSERVER,使用Active模式
在使用PORT指令后,系统提示"PORT command successful".
然后我建立socket,并连接FTP服务器,但此时显示错误提示:
"由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。"

下面是我的代码
====================================
Dim strT As String
strT = "192,168,42,27,19,70"

'192.168.42.27:是本地IP地址
'19,70:是自己随意设定的

sendCommand("PORT " & strT)

Dim ipAddress As String = Me.strServer
Dim port As Int32 = 19 * 256 + 70

Dim socket As Socket = Nothing
Dim ep As IPEndPoint = Nothing

socket = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
ep = New IPEndPoint(Dns.Resolve(ipAddress).AddressList(0), port)
socket.Connect(ep)
====================================

大家帮忙看看有什么问题?或有什么建议?

PS.使用PASV可以连接某些服务器,但连接TSERVER不行。
...全文
553 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongshanyu 2006-08-31
  • 打赏
  • 举报
回复
to heng_s

谢谢提点 :),我是这样使用帧听的,这里帖的代码,格式会很乱,麻烦看一下下面这个页面:
http://blog.donews.com/Shan/archive/2006/08/31/1025109.aspx

系统反馈信息:
================
PORT 192,168,42,27,14,3
200 PORT command successful.
LIST
150 Opening ASCII mode data connection for directory listing.
226 Transfer complete
================
跟踪调试,发现LIST命令,没有获得服务器文件列表

且之后,执行代码:
l_iRetval = cSocket.Receive(receiveBuffer)
系统不能继续下去,不知道问题在哪,heng_s,帮忙看看,谢谢了

fds2003 2006-08-31
  • 打赏
  • 举报
回复
问题解决了?
dongshanyu 2006-08-31
  • 打赏
  • 举报
回复
收到,我先看看,谢谢!
oo渣渣oo 2006-08-31
  • 打赏
  • 举报
回复
已经发了,请收邮件
dongshanyu 2006-08-31
  • 打赏
  • 举报
回复
to heng_s(渣渣)
ydsfm@yahoo.com.cn 谢谢了 :-)
oo渣渣oo 2006-08-31
  • 打赏
  • 举报
回复
而且PORT模式有个很BT的麻烦问题,就是不能在短时间内使用同一端口进行两次以上的侦听.不然第一次以后的连接都无法正确建立.

你看很多PASV模式的FTP Server都是不停的在更新侦听的端口号.我也是用的这种方式解决的.

不知道还有没有高手遇到过?大家是怎么解决的?
oo渣渣oo 2006-08-31
  • 打赏
  • 举报
回复
你在createDataSocket里面定义了objSocket来侦听,怎么后面又定义一个变量去连接了?

那你AcceptSocket远端连接请求的代码在哪里?

算了,给个邮箱.我把我做的发给你慢慢看
oo渣渣oo 2006-08-30
  • 打赏
  • 举报
回复
因为我刚刚才做完一个FTP的Client类.
oo渣渣oo 2006-08-30
  • 打赏
  • 举报
回复
是滴,我肯定!
dongshanyu 2006-08-28
  • 打赏
  • 举报
回复
大家帮忙顶啊 :)
dongshanyu 2006-08-28
  • 打赏
  • 举报
回复
> PORT模式应该是你建立侦听,对方服务器来连接你吧?

PORT模式下,Client需要建立帧听?
不知道,查过不少资料,都没提到过这一点,连Active模式,指令的使用谈的也很少。
oo渣渣oo 2006-08-28
  • 打赏
  • 举报
回复
PORT模式应该是你建立侦听,对方服务器来连接你吧?

PASV模式才是对方服务器建立侦听,你用Socket去连接对方.
dongshanyu 2006-08-28
  • 打赏
  • 举报
回复
to 看看发送的指令烈表是什么

连接FTP服务器的显示,其它FTP软件详细的执行情况,如下

AbsoultFTP 2.2.10
==================================
...
> TYPE A
< 200 Type set to A.
> PORT 192,168,42,27,9,0
< 200 PORT command successful.
> LIST
i Data connection C55918 accepted.
< 150 Opening ASCII mode data connection for directory listing.
< total 1136
...
==================================


CuteFTP 7.1
==================================
...
COMMAND:>TYPE A
200 Type set to A.
COMMAND:>REST 0
350 Restarting at 0. Send STORE or RETRIEVE to initiate transfer.
COMMAND:>PORT 192,168,42,27,9,164
200 PORT command successful.
COMMAND:>LIST
150 Opening ASCII mode data connection for directory listing.
226 Transfer complete.
...
==================================

iland9876543210 2006-08-26
  • 打赏
  • 举报
回复
ding
dongshanyu 2006-08-25
  • 打赏
  • 举报
回复
从其指令列表中不能获得什么信息,除了知道使用了PORT指令外,其使用的端口在我代码中使用了,但无效。
dongshanyu 2006-08-25
  • 打赏
  • 举报
回复
to 看看发送的指令烈表是什么
CuteFTP的指令列表:
PORT
LIST
Knight94 2006-08-25
  • 打赏
  • 举报
回复
to 不知道对方端口是否屏蔽了,但我使用了CuteFTP的PORT模式后,我使用其相同的端口号,也不行。
PS.使用过CuteFTP和AbsoultFTP的Active模式测试,均可以连接FTP服务器,使用PASV模式,它们也都不可以连接FTP服务器。

看看发送的指令烈表是什么
wangwei155 2006-08-25
  • 打赏
  • 举报
回复
dongshanyu 2006-08-25
  • 打赏
  • 举报
回复
不知道对方端口是否屏蔽了,但我使用了CuteFTP的PORT模式后,我使用其相同的端口号,也不行。

PS.使用过CuteFTP和AbsoultFTP的Active模式测试,均可以连接FTP服务器,使用PASV模式,它们也都不可以连接FTP服务器。
Knight94 2006-08-25
  • 打赏
  • 举报
回复
参看这篇文章,看看你还有什么漏的
http://www.chinaitpower.com/A200508/2005-08-02/182012.html
加载更多回复(1)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧