ftp与sftp连接实例

来源:互联网 发布:sd卡数据修复 编辑:程序博客网 时间:2024/06/05 11:06

1.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);

0 0
原创粉丝点击