FTP的数据连接的建立(200分)

  • 主题发起人 主题发起人 9911
  • 开始时间 开始时间
9

9911

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用ClientSocket和服务器(服务器地址为 127.0.0.1 )建立了命令连接,
用ServerSocket建立数据连接.通过PASV得到了数据端口号,然后开始建立数据连接.
... ...
ServerSocket.Port := DataPort;
ServerSocket.Active := True; <-- 错误位置
... ...

但我一执行就发生错误,系统提示"Windows socket error:通常每个套接字地址只允许使用一次..."
我错在哪里啦? 如何解决???
 
你同时使用了两个指向同一地址的 ServerSocket ? 或你的程序执行了两份 ?
 
to beta:
没有啊! 但服务器和客户机在同一台机器上!
 
你用 PASV 得到的端口号,就要用clientsocket去连接它
你用 PORT 得到的端口号,才是用serversocket打开端口等待服务器连接
你用pasv,服务器已经打开了那个端口等你连接过来了,在同一台机器上,你再侦听这个端口?第一、不行,第二、方法错误
 
噢,就是说,client和server不管在哪的机器上,都要各自有自己的端口。
即使同一台机器,也是client有client的端口,server有server的端口。
只不过是server的端口是相对固定的。

现在知道为什么用一些软件监控的时候发现ie自己占用了一大堆端口了。
因为他在保持和不同的server的连接。
 
后退
顶部