您的位置:首页 > 编程语言 > PHP开发

ftp与sftp连接实例

2015-10-09 22:29 756 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp sftp java