我的代码中的端口号必须与我尝试连接的FTP服务器(在本例中为localhost)使用的端口号完全相同吗?
public class FTP {
public static void main(String args[]) {
FTPClient ftpc = new FTPClient();
try {
ftpc.connect("127.0.0.1",49961);
ftpc.login("username", "password");
System.out.println("Connected");
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("NOT Connected (socketERR) ");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("NOT Connected (ioERR) ");
}
}
}
错误日志:
java.net.ConnectException:拒绝连接:connect at java.net.DualStackPlainSocketImpl.connect0(Native Method)at java.net.DualStackPlainSocketImpl.socketConnect(未知来源)at java.net.AbstractPlainSocketImpl.doConnect(未知来源)at java.net.AbstractPlainSocketImpl.connectToAddress(未知来源)at java.net.AbstractPlainSocketImpl.connect(未知来源)at java.net.PlainSocketImpl.connect(未知来源)at java.net.SocksSocketImpl.connect(未知来源)at java.net.Socket.connect(未知来源)at org.apache.commons.net.SocketClient.connect(SocketClient.java:182)at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)at com.testftp.FTP.main(FTP.java:23)NOT Connected(socketERR)
答案 0 :(得分:0)
是的,它必须。
顺便说一下,这对尝试连接服务器的任何服务都有效。一些服务已经建立了标准的默认端口 - 例如,FTP是21。只要客户端和服务器都使用相同的端口,就可以更改这些默认端口并在其他端口上运行服务。