研究了半天,學(xué)習(xí)了sun.net.ftp包中的FtpClient類,,用來實(shí)現(xiàn)Ftp功能,。
首先搭好Ftp的測(cè)試環(huán)境
添加windows組件,安裝IIS中的FTP服務(wù),。
在運(yùn)行中輸入inetmgr,,對(duì)默認(rèn)ftp站點(diǎn)點(diǎn)右鍵->屬性進(jìn)行配置,
配置好了之后在運(yùn)行中輸入ftp進(jìn)行鏈接測(cè)試
現(xiàn)在ftp的測(cè)試環(huán)境已經(jīng)搭建成功,,接下來用java編程實(shí)現(xiàn)ftp的訪問
簡(jiǎn)單介紹一下sun.net.ftp中的FtpClient類
該類中有:
openServer方法:用于鏈接ftp,,類似于在ftp(dos格式下)中輸入open命令。
login方法:用于輸入用戶及密碼,,類似于在ftp(dos格式下)中輸入user命令,。
sendServer方法:用于向ftp服務(wù)器發(fā)送各種指令。
readServerResponse方法:與sendServer方法合用,,用于使服務(wù)器返回消息,。
getResponseString方法:獲取服務(wù)器返回的消息。
closeServer方法:中斷服務(wù)器鏈接,,類似于在ftp(dos格式下)中輸入quit命令,。
下面是demo程序的效果
下面是程序源代碼:
/*------------------display ftp demo class begin----------------*/
package com.android.Yao;
import java.applet.Applet;
import java.awt.*;
public class displayftpdemo extends Applet {
TextField tf = new TextField("",45);
Button button = new Button("Send");
Button button1 = new Button("Exit");
TextArea ta = new TextArea("",10,50);
ftpdemo b=new ftpdemo();
public void init()
{
add(ta);
add(tf);
add(button);
add(button1);
try
{
b.connectServer(b.gethostname(), b.getport(), b.getusername(),b.getuserpwd());
ta.append(b.ftpClient.getResponseString());
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean action(Event e,Object o)
{
if(e.target instanceof Button)
{
if(e.target == button)
{
try
{
ta.append(b.SendServer(b,tf.getText()+"\r\n"));
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
else if (e.target == button1)
{
try
{
b.closeServer();
ta.append(b.ftpClient.getResponseString());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
return true;
}
}
/*------------------display ftp demo class end----------------*/
/*------------------ftpclient class begin ----------------*/
package com.android.Yao;
import sun.net.ftp.*;
public class ftpdemo {
String hostname = "192.168.0.195";
int portnum = 21;
String username = "anonymous";
String userpwd = "111";
FtpClient ftpClient = new FtpClient();
public String gethostname()
{
return hostname;
}
public int getport()
{
return portnum;
}
public String getusername()
{
return username;
}
public String getuserpwd()
{
return userpwd;
}
public boolean connectServer(String ip, int port, String user, String pwd)
throws Exception
{
boolean isSuccess = false;
try
{
ftpClient.openServer(ip, port);
ftpClient.login(user, pwd);
isSuccess = true;
}
catch (Exception ex)
{
throw new Exception("Connect ftp server error:" + ex.getMessage());
}
return isSuccess;
}
public boolean closeServer()
throws Exception
{
boolean isSuccess = false;
try
{
ftpClient.closeServer();
isSuccess = true;
}
catch(Exception ex)
{
throw new Exception("DisConnect ftp server error:"+ex.getMessage());
}
return isSuccess;
}
public String getFileList()
throws Exception
{
String FileName="no filelist";
this.connectServer(hostname, portnum, username, userpwd);
try
{
}
catch(Exception ex)
{
throw new Exception("Get FileList error:"+ex.getMessage());
}
this.closeServer();
return FileName;
}
public String SendServer(ftpdemo a,String cmd)
throws Exception
{
String result="error\n";
try
{
a.ftpClient.sendServer(cmd);
a.ftpClient.readServerResponse();
result = ftpClient.getResponseString();
}
catch(Exception ex)
{
throw new Exception("Get FileList error:"+ex.getMessage());
}
return result;
}
}
/*------------------ftpclient class end ----------------*/
今天一天的學(xué)習(xí)結(jié)束,,明天研究研究各個(gè)ftp的指令,以及如何將其整合到Android手機(jī)中,!