日期:2014-05-20  浏览次数:20990 次

ftpClient连接局域网中另一台电脑上的FTP server时的连接超时问题

写了一个FtpClient链接Ftp服务器的一个简单程序,测试连接:

	/**
 * 测试登录
 * */
public boolean login(String serverIP, String user, String pwd) throws IOException {
boolean flag = false;
FTPClient ftpClient = new FTPClient(); 
try { 
ftpClient.connect(serverIP); 
if(ftpClient.login(user, pwd)){flag = true;} 
}catch(IOException e){
e.printStackTrace(); 
throw new RuntimeException("FTP客户端出错!", e); 
}finally{
try { 
ftpClient.disconnect(); 
} catch (IOException e) { 
e.printStackTrace(); 
throw new RuntimeException("关闭FTP连接发生异常!", e); 

}
return flag;
}


当连接自己电脑上的服务器时可以连接上:

System.out.println(new FTPService().login("192.168.1.101", "admin", "admin"));


true


但当连接到同一局域网内的其他电脑上的FTP服务器时,却连接超时:

System.out.println(new FTPService().login("192.168.56.1", "lab2", "admin"));


java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:182)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:296)
at com.service.FTPService.login(FTPService.java:26)
at com.service.FTPService.main(FTPService.java:176)
Exception in thread "main" java.lang.RuntimeException: FTP客户端出错!
at com.service.FTPService.login(FTPService.java:30)
at com.service.FTPService.main(FTPService.java:176)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:182)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:296)
at com.service.FTPService.login(FTPService.java:26)
... 1 more


想知道这个能不能连通与什么有关?要想连上,应该进行哪些操作?谢谢各位的不吝赐教。
------解决方案--------------------
可能是防火墙之类导致网络不通。
你可以先用telnet试试看通不通
telnet 192.168.1.101 21
------解决方案--------------------
引用:
可能是防火墙之类导致网络不通。
你可以先用telnet试试看通不通
telnet 192.168.1.101 21


应该是 telnet 192.168.56.1 21
------解决方案--------------------
帮助你顶一下。