FTP上传文件错误?

dong1728 2011-01-01 01:03:22
我用VC6.0编写了一个FTP客户端软件,然后打包后,放到五台电脑上进行测试,其中三台电脑能正常的上传文件,另外两台电脑不能正常上传文件,但是能创建文件夹,在服务端也能看到创建的文件名字,但是却不能传输文件。我在服务端用SERV-U做的FTP服务器,在日志中显示如下的内容:

220 Serv-U FTP Server v10.1 ready...
USER dong1728
331 User name okay, need password.
PASS **********
230 User logged in, proceed.
TYPE I
200 Type set to I.
PORT 123,116,67,27,196,140
200 PORT command successful.
STOR 港澳游说明.jpg
150 Opening BINARY mode data connection for 港澳游说明.jpg.
425 Cannot open data connection.

这个是什么原因呢,为什么有的能上传,有的不行呢?可以怎么解决,那位知道,请告知,多谢!
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamseyang 2011-01-05
  • 打赏
  • 举报
回复
我以前也遇到过这个问题的,客户端是用libcurl库的,服务器也是ServU,用libcurl主动被动模式很好改的,其他的就不知道了
dong1728 2011-01-01
  • 打赏
  • 举报
回复
TO wwgddx
你说的这几个设置方法,在哪里设置,不好意思,我使用的是SERV-u默认设置的,我不太清楚怎么设置。
dong1728 2011-01-01
  • 打赏
  • 举报
回复
我用的是SERV-u10.0的,怎么设置PASV被动模式?
wwgddx 2011-01-01
  • 打赏
  • 举报
回复
如果FTP的远程主机不支持PASSIVE模式,或者有防火墙对PASSIVE模式的限制,那么FTP作业就会挂起,一些FTP的子命令 象:LS/PUT/GET 就会出现FTP425:Not able to open/establish data connection的错误,或者 FTP451:Transfer aborted 的错误。

尽管这不是AS/400操作系统或TCP/IP的问题,但是,我们可以通过切换FTP的PASV模式来解决这个问题:

1. 在FTP客户端通过子命令(sendpasv)来切换PASV/PORT 模式:
* 切换到PORT模式
sendpasv 0
SENDPASV is off.

* 切换到PASV模式
sendpasv 1
ENDPASV is on.

2. 如果您需要永久地使用PASV模式,可以通过定义数据区域的定义来实现:

CRTDTAARA DTAARA(QUSRSYS/QTMFTPPASV) TYPE(*LGL) AUT(*USE) VALUE('0')

如果您不希望再使用PASV模式了,则只需要将该数据区域删除即可:

DLTDTAARA DTAARA(QUSRSYS/QTMFTPPASV)
dong1728 2011-01-01
  • 打赏
  • 举报
回复
没有高手吗???
dong1728 2011-01-01
  • 打赏
  • 举报
回复
为什么有的电脑能上传,有的不能啊。在SERV-u中可以看到一直在传送给文件,很长时间后,就传送下一个文件,但是上一个文件没有传输成功,只生成了文件的名字,但是文件是空的。
dong1728 2011-01-01
  • 打赏
  • 举报
回复
windows自带防火墙已经关闭
拓跋野 2011-01-01
  • 打赏
  • 举报
回复
防火墙关了吗?你用的是服务器主动模式,服务器会连接到你的一个本地端口,错误时不能打开数据连接,说明连接失败了,有可能是被你的防火墙挡了,或者是你指定的本地端口太低,你没有权限,创建文件夹等是不需要单独开数据连接的所以 不会有问题。
疯狂石头_ 2011-01-01
  • 打赏
  • 举报
回复
比较奇怪,帮顶下!

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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