由于公司需要,在网上找了一下支持SFTP的包,发现俩个不错的,一个是 Secure FTP Factory ,一个是 J2SSH Maverick ,但都是收费的,现在简单介绍一下 J2SSH Maverick 怎样简单使用。代码如下:
/* HEADER */
import com.maverick.ssh.*;
import com.maverick.ssh2.*;
import java.io.*;
import com.sshtools.net.*;
import com.sshtools.sftp.*;
/**
* This example demonstrates the connection process connecting to an SSH2 server
* and usage of the SFTP client.
*/
public class MySftpConnect {
public static void main(String[] args) {
MySftpConnect c = new MySftpConnect();
c.createSftpClient("192.168.0.108", "szb", "szbpatternx86", 22);--参数依次为主机名,用户名,密码,端口号。
}
public void createSftpClient(String hostname, String username,
String password, int port) {
try {
System.out.println("Connecting to " + hostname);
// Create an SshConnector instance
SshConnector con = SshConnector.getInstance();
// Connect to the host
SocketTransport t = new SocketTransport(hostname, port);
t.setTcpNoDelay(true);
SshClient ssh = con.connect(t, username);
Ssh2Client ssh2 = (Ssh2Client) ssh;
// Authenticate the user using password authentication
com.maverick.ssh.PasswordAuthentication pwd = new com.maverick.ssh.PasswordAuthentication();
do {
pwd.setPassword(password);
} while (ssh2.authenticate(pwd) != SshAuthentication.COMPLETE
&& ssh.isConnected());
// Start a session and do basic IO
if (ssh.isAuthenticated()) {
SftpClient sftp = new SftpClient(ssh2);
// test create file.
this.createTestFile(sftp);
}
} catch (Throwable th) {
th.printStackTrace();
}
}
//测试IO操作
public void createTestFile(SftpClient sftp) throws Exception {
File textFile = new File(System.getProperty("user.home"), "shining.txt");
FileOutputStream tout = new FileOutputStream(textFile);
// Create a file with \r\n as EOL
for (int i = 0; i < 100; i++) {
tout.write("All work and no play makes Jack a dull boy中文\r\n"
.getBytes());
}
tout.close();
// Perform some text mode operations指定文件存储为txt类型
sftp.setTransferMode(SftpClient.MODE_TEXT);
// Tell the client which EOL the remote client is using - note
// that this will be ignored with version 4 of the protocol
sftp.setRemoteEOL(SftpClient.EOL_LF);
//将文件上传到服务器
sftp.put(textFile.getAbsolutePath());
}
}
写的不太详细,请参考:http://3sp.com/kb/idx/0/014/article/Getting_started_with_J2SSH_Maverick.html
相关推荐
SFTP协议通过SSH协议建立一个加密的通道来进行文件的传输,这使得即使数据在网络上传输时被拦截,也无法被解读。SFTP协议不仅支持文件的上传和下载,还支持诸如文件移动、重命名、删除等操作,并且可以在同一会话中...
SSH2 协议的纯 Java 实现,使您能够在开源和商业友好的 LGPL 许可下创建客户端和服务器解决方案。 第三代 API 建立在 Java NIO 框架之上,首次为开发客户端和服务器解决方案提供了统一的框架。 特征 以下是 API 的...
少儿编程scratch项目源代码文件案例素材-直升机飞行.zip
wanjunshe_Python-Tensorflow_12888_1745868924470
健康监测_Android开发_BLE蓝牙通信_心率数据采集与存储_基于小米手环2的实时心率监测应用_支持后台长时间运行的心率记录工具_可导出SQLite数据库的心率数据分析系统_适
少儿编程scratch项目源代码文件案例素材-种花模拟器.zip
嵌入式系统开发_FreeRTOS实时操作系统_STM32F103C8T6微控制器_OLED显示屏_DHT11温湿度传感器_多任务调度_多级菜单设计_万年历算法_电子闹钟功能_参数配
基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
scratch少儿编程逻辑思维游戏源码-猫猫粉碎.zip
scratch少儿编程逻辑思维游戏源码-蓝胡子.zip
scratch少儿编程逻辑思维游戏源码-美食大亨.zip
scratch少儿编程逻辑思维游戏源码-洛克人.zip
scratch少儿编程逻辑思维游戏源码-龙冲刺.zip
思幻个人引导页V2.2版本11月29日更新.zip
scratch少儿编程逻辑思维游戏源码-骑士风斩法.zip
移动应用开发_H5CSS3ionicng-cordovaMVVM模式_基于HTML5和CSS3技术实现多页面布局ionic指令数据绑定ui-route单页跳转调用手机
少儿编程scratch项目源代码文件案例素材-植物大战僵尸创造版 Ver. 1.0.3.zip
scratch少儿编程逻辑思维游戏源码-日落(2).zip
动态星空背景个人主页(带后台).zip
scratch少儿编程逻辑思维游戏源码-迷雾森林:诞生 3.2 起源觉醒.zip