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

xuanmu 2014-01-09 09:11:53

写了一个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


想知道这个能不能连通与什么有关?要想连上,应该进行哪些操作?谢谢各位的不吝赐教。
...全文
358 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujun3512159 2014-01-10
  • 打赏
  • 举报
回复
帮助你顶一下。
rumlee 2014-01-10
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
可能是防火墙之类导致网络不通。 你可以先用telnet试试看通不通 telnet 192.168.1.101 21
应该是 telnet 192.168.56.1 21
rumlee 2014-01-10
  • 打赏
  • 举报
回复
可能是防火墙之类导致网络不通。 你可以先用telnet试试看通不通 telnet 192.168.1.101 21

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧