ftp与sftp连接实例
2015-10-09 22:29
756 查看
1.ftp连接方式
备注:
1.ftp连接不安全,一般出于安全性的考虑会关闭ftp端口,连接ftp都是通过sftp方式连接;
2.ftp的上传与下载需要设置文件传输模式为二进制传输模式,如:
import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; public class Test1 { public static FTPClient ftpClient = new FTPClient(); public static boolean connect(String hostname, String username, String password) throws IOException { ftpClient.connect(hostname); ftpClient.setControlEncoding("UTF-8"); if (ftpClient.login(username, password)) { ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); System.out.println("FTP连接成功!"); return true; } System.out.println("FTP连接失败!"); disconnect(); return false; } public static void disconnect() throws IOException { if (ftpClient.isConnected()) { ftpClient.disconnect(); System.out.println("FTP disconnected.."); } } public static void main(String[] args) { try { String hostname = "10.193.22.146"; String username = "test"; String password = "test"; connect(hostname, username, password); disconnect(); }catch (Exception e) { e.printStackTrace(); } } }2.sftp连接方式
import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; public class Test { private ChannelSftp sftp; /** * @param args * @throws InterruptedException * @throws ParseException * @throws IOException */ public static void main(String[] args) throws InterruptedException, ParseException, Exception { sftp = connect("10.198.12.87", 22, "admin", "admin"); sftp.disconnect(); } /** * 连接sftp服务器 * * @param host 主机 * @param port 端口 * @param username 用户名 * @param password 密码 * @return */ public static ChannelSftp connect(String host, int port, String username, String password) { ChannelSftp sftp = null; try { JSch jsch = new JSch(); jsch.getSession(username, host, port); Session sshSession = jsch.getSession(username, host, port); System.out.println("Session created."); sshSession.setPassword(password); Properties sshConfig = new Properties(); sshConfig.put("StrictHostKeyChecking", "no"); sshSession.setConfig(sshConfig); sshSession.connect(); System.out.println("Session connected."); System.out.println("Opening Channel."); Channel channel = sshSession.openChannel("sftp"); channel.connect(); sftp = (ChannelSftp) channel; System.out.println("Connected to " + host + "."); } catch (Exception e) { e.printStackTrace(); } return sftp; } public ChannelSftp getSftp() { return sftp; } public void setSftp(ChannelSftp sftp) { this.sftp = sftp; } }
备注:
1.ftp连接不安全,一般出于安全性的考虑会关闭ftp端口,连接ftp都是通过sftp方式连接;
2.ftp的上传与下载需要设置文件传输模式为二进制传输模式,如:
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统