2015-11-13 50 views
-1

不知道为什么我在eclipse上获取该堆栈跟踪时,当我尝试将套接字设置为我的客户端请求的端口时。尝试在服务器上实现FTP端口命令:端口正在使用

enter image description here

enter image description here

enter image description here

+0

您正尝试在同一台计算机的同一端口上设置两个服务器套接字。您不能 – 3kings

+0

为什么当我使用PASV时它有效? – Dan

+0

我不能回答这个问题,因为我不知道'PASV'是什么,它意味着什么 – 3kings

回答

0

客户端请求的是要连接到的PORT命令给出的地址/端口。这意味着您必须创建一个到客户端(ClientSocket)的连接,但是您正在等待来自客户端的连接(ServerSocket)。在PASV模式下它是不同的,因为你在等待来自客户端的连接(ServerSocket)。

“地址已在使用中”消息是由于您正在尝试到本地主机的FTP连接。也就是说,客户端已经绑定到PORT命令中给出的IP:端口并等待连接,但是您错误地尝试在同一系统上的同一个端口上创建ServerSocket - 这是不可能的并导致错误消息。

+0

我看到我会尝试。所以在服务器上,我将根据客户端的Port命令给出的地址创建一个Socket。并不等待接受? – Dan

+0

@Dan:是的,这就是FTP主动模式的工作原理。 –

+0

OMG它的工作原理,非常感谢。 – Dan

相关问题