javaftp代码 java lftp( 二 )


socket.close()对应的阶段是断开连接(四次挥手)的阶段 。
2、刚开始对于ftp协议不是很理解,不知道他的工作方式是怎样的,后来在看了tcp协议卷里面的ftp的内容之后,才知道ftp命令和应答码是关键 。eg:刚开始测试时 , 在
输入用户名之后,不会提示输入密码的 。原因:没有返回对应的应答码:331.另外要注意的是:返回的数据要以换行回车作为结束--\r\n.
六、代码列表
简单说明:
ftpServer:是服务器的主程序,入口 , 同时负责监听本地的21号端口 。
ControllerThread.java:用于处理控制连接的线程(每一个控制连接请求对应一个线程)ps:实在很浪费(流量小,连接多) 。
Share:一些全局性数据的维护 。
Command:是命令接口,定义了一个所有命令都要实现的方法 。
CommandFactory:命令工厂,通过传人的参数,决定生成的命令对象 。
UserCommand,PortCommand等:是具体ftp命令的实现
如何用JAVA实现FTP访问在主函数中,完成服务器端口的侦听和服务线程的创建 。我们利用一个静态字符串变量initDir 来保存服务器线程运行时所在的工作目录 。服务器的初始工作目录是由程序运行时用户输入的,缺省为C盘的根目录 。
具体的代码如下:
public class ftpServer extends Thread{
private Socket socketClient;
private int counter;
private static String initDir;
public static void main(String[] args){
if(args.length != 0) {
initDir = args[0];
}else{ initDir = "c:";}
int i = 1;
try{
System.out.println("ftp server started!");
//监听21号端口
ServerSocket s = new ServerSocket(21);
for(;;){
//接受客户端请求
Socket incoming = s.accept();
//创建服务线程
new ftpServer(incoming,i).start();
i++;
}
}catch(Exception e){}
}
如何用java代码实现ftp文件上传import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.net.;
import org.apache.commons.net.;
public class test {
privateFTPClient ftp;
/**
*
* @param path 上传到ftp服务器哪个路径下
* @param addr 地址
* @param port 端口号
* @param username 用户名
* @param password 密码
* @return
* @throws Exception
*/
privateboolean connect(String path,String addr,int port,String username,String password) throws Exception {
boolean result = false;
ftp = new FTPClient();
int reply;
;
;
;
reply = ;
if (!FTPReply.isPositiveCompletion(reply)) {
;
return result;
}
;
result = true;
return result;
}
/**
*
* @param file 上传javaftp代码的文件或文件夹
* @throws Exception
*/
private void upload(File file) throws Exception{
if(file.isDirectory()){
(file.getName());
(file.getName());
String[] files = file.list();
for (int i = 0; ifiles.length; i++) {
File file1 = new File(file.getPath()+"\\"+files[i] );
if(file1.isDirectory()){
upload(file1);
;
}else{
File file2 = new File(file.getPath()+"\\"+files[i]);
java FTP下载文件在代码中如何实现知道下载完成?public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
try {
String ftpHost = kmConfig.getFtpHost();
int port = kmConfig.getFtpPort();
String userName = kmConfig.getFtpUser();
String passWord = kmConfig.getFtpPassword();
String path = kmConfig.getFtpPath();
FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost为FTP服务器的IP地址,port为FTP服务器的登陆端口,ftpHost为String型,port为int型 。

推荐阅读