客户端首先进入被动模式,因为我不知道远程 FTP 服务器是主动模式还是被动模式。通常,首先进入被动模式。代码如下:FTPClient ftpClient = new FTPClient();ftpClient.connect(ip,port);ftpClient.login(id,pw);ftpClient.enterLocalPassiveMode();...(occur mode error)(I use try-catch in case an error occurs)(active mode reconnect)...ftpClient.logout();ftpClient.disconnect();ftpClient.connect(ip,port);ftpClient.login(id,pw);ftpClient.enterLocalActiveMode();我想听听像这样处理模式的正确做法。我正在使用 FTPClient (Apache Commons Net)。
1 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
在主动模式 FTP 中,服务器必须打开返回给客户端的 TCP 连接;除非您的客户端直接在 Internet 上(没有防火墙或地址转发),否则活动模式将不起作用。
相反,被动模式 FTP 不会打开从服务器到客户端的 TCP 套接字,并且在两种情况下都可以工作(直接互联网连接和通过地址转发的互联网连接)。
大多数计算机都在防火墙后面并使用地址转发,因此通常采用被动模式。
添加回答
举报
0/150
提交
取消