我打算在两台机器之间开发一个FTP客户端,由于安全原因,它们之间存在限制防火墙。防火墙仅接受与服务器和客户端上已定义端口的连接,并且不可能打开端口范围。但我无法绑定我的客户端和服务器与特定端口进行协商。例如,我总是希望将本地端口50000上的一个文件上传到FTP服务器上的端口21。我如何才能实现这一目标?
答案 0 :(得分:1)
如果要更改FTP控制连接的本地端口:
SocketFactory
(特别是其SocketFactory.createSocket()
method)以创建绑定到特定本地端口的套接字。FTPClient.setSocketFactory
(继承自SocketClient
)分配您的SocketFactory
实施。答案 1 :(得分:1)
使用connect
method overload that takes localPort
parameter(方法继承自SocketClient
:
public void connect(InetAddress host, int port,
InetAddress localAddr, int localPort)
注意 localAddr
如果您分配了多个 IP。