社区
网络编程
帖子详情
FTP Port模式使用的问题
chzhk007
2009-04-29 11:46:58
FTP 客户端使用Port命令建立TCP数据连接后,我想重用现有的socket和port,继续接受数据,但是只有第一次成功,后面的总失败,不知道是何原因,难道每次接受数据完毕后服务器会关闭数据连接吗?
...全文
453
10
打赏
收藏
FTP Port模式使用的问题
FTP 客户端使用Port命令建立TCP数据连接后,我想重用现有的socket和port,继续接受数据,但是只有第一次成功,后面的总失败,不知道是何原因,难道每次接受数据完毕后服务器会关闭数据连接吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
udknight
2009-06-18
打赏
举报
回复
被port模式折腾了很久,最后改pasv模式了。
liu_yi_shanghai
2009-06-18
打赏
举报
回复
我也正在写FTP主动模式。我发现不同的服务器处理不一样。
Serv-U的服务器PORT命令发一回就可以了。
IIS的服务器每回收了数据后就必须重新发PORT。
具体为什么不是很清楚。
linyu1247
2009-06-11
打赏
举报
回复
[Quote=引用 7 楼 lovejklife 的回复:]
主动模式没用过
我的理解
每个数据连接都需要ACCEPT的,不可以在同一端口上建立多个数据连接,必须close再accept,要同时建立多个数据连接要Create多个Socket
Send Port command->Send "List" command
Create Listen Socket->bind port->Listen->Accept->Receive->close->
| |
--------- <---…
[/Quote]
port模式的话 ftp服务器端不多是用20端口来进行数据连接吗?那不就是一个端口建立了多个数据连接,我查看服务器端口看到很多的20端口处于wait状态,过一段时间就被回收了。建议您多了解一下ftp的pasv和port模式的工作原理。
lovejklife
2009-05-09
打赏
举报
回复
主动模式没用过
我的理解
每个数据连接都需要ACCEPT的,不可以在同一端口上建立多个数据连接,必须close再accept,要同时建立多个数据连接要Create多个Socket
Send Port command->Send "List" command
Create Listen Socket->bind port->Listen->Accept->Receive->close->
| |
---------<----------
chzhk007
2009-04-29
打赏
举报
回复
我有个实际的应用项目,就是先拿FTP server的文件/目录列表。
然后针对每个子目录,拿它的文件列表。
所以数据连接肯定不是只用一次。
第一次是这么用的:
Create Listen Socket->Listen->Send Port command->Send "List" command->Accept->Receive
数据接收完毕后,我想继续发送"List 目录"命令去拿子目录下的文件列表,重用已经建立好的socket 和port,接收数据。可是接收的都是0字节的。
另外, 如果每次都是重新建立socket,象下面的那样,到是没问题,
Create Listen Socket->Listen->Send Port command->Send "List" command->Accept->Receive
但这样做并不是一个很好的解决方案。
因为如果子目录有上万个,那得重新建立上万个的新的socket和port,这种做法肯定是比较愚蠢的。
yearn520
2009-04-29
打赏
举报
回复
你所说的一次是什么意思?代码
biweilun
2009-04-29
打赏
举报
回复
我这边有个源代码给你参考下看看:http://www.brsbox.com/filebox/down/fc/3b9ac7f3f3fc71c6282e376864d46ae7
wutaihua
2009-04-29
打赏
举报
回复
这个问题可能比较复杂,我当时为了写一个服务器,用了我2个星期还多。后面就是调试。我的经验就是你竟然是写的客户端,可以找个开源的服务器端来比较,调试。这样,比你这样整要好一些。对照着来。我当时也是这么搞的。
wutaihua
2009-04-29
打赏
举报
回复
连接是重新建立和收回的,你可以做一个socket的管理机制,不用了,就收回port啊。而且你看看客户端和服务器端的连接,并不是有一万个目录,就直接传10000个吧。而是分开发送的。
FTP
的
port
模式
和pasv
模式
FTP
的
port
模式
和pasv
模式
FTP
具有两种
模式
,分别是
port
模式
(也叫主动
模式
)和pasv
模式
(也叫被动
模式
)。 主动
模式
主动
模式
的
FTP
是指服务器主动连接客户端的数据端口,可以理解为服务端主动给客户端传输文件。 ...
ftp
-主动
模式
(
PORT
)和被动
模式
(PASV)
简介
FTP
协议要用到两个TCP连接, ...而主动
模式
与被动
模式
的差异主要体现在数据连结通道上命令连接当
FTP
客户端需要登陆到
FTP
服务器上的时候,服务器与客户端需要进行一系列的身份验证过程,这个过程就叫做命令
passive
模式
tcp_
FTP
Port
(Active)
模式
和Passive
模式
详解
这和
FTP
的应用
模式
有关,如果是主动
模式
,应该为20,如果为被动
模式
,由服务器端和客户端协商而定
FTP
Port
(active)
模式
和
FTP
Passive
模式
当你对一个
FTP
问题
进行排错时候,你首先要问的一个
问题
是
使用
的是
port
模式
的...
FTP
主动
模式
(
Port
)和被动
模式
(Passive)的区别
1、
FTP
的
PORT
(主动
模式
):
PORT
中文称为主动
模式
,工作的原理:
FTP
客户端(1024以上端口)连接到
FTP
服务器的21端口,发送用户名和密码登录, 登录成功后要list列表或者读取数据时,客户端随机开放一个端口...
FTP
协议(
PORT
和PASV
模式
)
5、数据传输结束后,发送数据的一方发起关闭数据连接(关闭数据连接有时会
使用
四次挥手,有时会借助
FTP
报文实现数据连接关闭;等下次传输时再重新建立连接);客户端向服务器发送PASV命令,里面携带了客户端为服务器...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章