一个关于FTPDEMO和TServerSocket的问题!!熟悉网络编程的高手请进!!!(200分)

  • 主题发起人 主题发起人 artan
  • 开始时间 开始时间
A

artan

Unregistered / Unconfirmed
GUEST, unregistred user!
问一个比较菜的问题,不要笑我:)
我用Delphi4的例程FTPDEMO登陆FTP服务器,一切正常。然后想用代理方式登陆试试。
就用TServerSocket和TClientSocket做了一个简单代理服务,可是运行FTPDEMO,连
接到代理服务上,TServerSocket连接建立,但除此之外什么也没有了,远程服务器
地址,用户名、密码等什么都没收到(代理浏览网页时这些都可以收到的呀),不知如
何处理,如何获知这样信息?请问熟悉网络编程的高手指点,我是不是少做了什么?
还是方法不对?
 
简单的用SOCKET去连21端口,只能收到欢迎信息。具体的如获得用户名等提示,
可能要发出相应的FTP指令。这个要去看FTP协议的书。
我写过类似的POP3的代理(自己玩的),就是这么干的。先发POP协议指令,再接收。
 
ftp代理比http代理麻烦的多。
比较常用的一种ftp proxy
首先代理不管如何都要首先返回220给客户。
收到客户的 USER user@host ,你才连host,发user给真的ftp服务器
收到客户的port命令,你要自己连上客户的port,然后自己打开port,修改port命令
让真的服务器连你的port,真的服务器发到这个port上的数据你再转发给客户的port...

真的很麻烦呀。这只是ftp proxy的一种实现,getright、netants支持,ie 还不支持呢。
ie支持的,get ftp;//... 方式,写起来更麻烦

netants、getright还支持open host指定服务器
 
多人接受答案了。
 
后退
顶部