android telnet服务器端,Android FTP客户端实现、Telnet客户端
Android FTP客戶端實現
android中使用第三方庫來操作FTP,這里使用Apache的包,下載地址為:http://commons.apache.org/proper/commons-net/download_net.cgi
其文件名稱為:commons-net-3.3-bin.zip
步驟1:在項目中引入包commons-net-3.3.jar,導入需要的FTPClient類;
步驟2:初始化FTPClient
mFtp=new FTPClient();
步驟3:設置登錄的地址和端口
mFtp.connect(ftpUrl,21);
步驟4:設置登錄用戶名和密碼
mFtp.login(name,pwd);
步驟5:設置文件類型和采用被動傳輸方式
mFtp.setFileType(FTP.BINARY_FILE_TYPE);
mFtp.enterLocalPassiveMode();
步驟6:傳輸文件
boolean aRtn=mFtp.storeFile(remoteFileName,aInputStream);//成功返回true
aInputStream.close();
步驟7:關閉連接
mFtp.disconnect();
核心代碼:
//導入需要的FTPClient類
import org.apache.commons.net.ftp.FTPClient;
//初始化FTPClient
FTPClient ftpClient=new FTPClient();
try{
//連接到指定的FTP服務器
ftpClient.connect(InetAddress.getByName(SERVER));
//使用用戶名和密碼登錄FTP
ftpClient.login(USERNAME,PASSWORD);
//檢查返回的字符串中是否包含250–250響應代碼表示“行為完成”
if(ftpClient.getReplyString().contains(“250”)){
//設置文件類型
ftpClient.setFileType(//默認使用的是ASCII編碼的,這里設置為二進制文件
org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE
);
//定義一個緩沖區
BufferedInputStream buffIn=null;
//將文件加載到緩沖區中
buffIn=new BufferedInputStream(new FileInputStream(FULL_PATH_TO_LOCAL_TYPE));
//設置客戶端的PASV模式(客戶端主動連服務器:端口用20)
ftpClient.enterLocalPassiveMode();
//存儲文件。返回是否成功
boolean result=ftpClient.storeFile(localAsset.getFileName,progressInput);
//關閉緩沖區
buffIn.close();
//登出
ftpClient.logout();
//斷開連接
ftpClient.disconnect();
}
}catch(SocketException e){
}catch(UnKnowHostException e){
}catch(IOEception ioe){
}
Telnet客戶端
實現的遠程控制Web服務器。
android使用第三方庫Telnet,這里使用Apache的包,下載地址:http://commons.apache.org/proper/commons-net/download_net.cgi
其文件名稱為:commons-net-3.3-bin.zip
步驟1:在項目中引入包commons-net-3.3.jar,導入需要的TelnetClient類;
步驟2:初始化TelnetClient
tc=new TelnetClient();
步驟3:打開連接
tc.connect(remoteip,remoteport);
步驟4:讀寫數據
tc.getInputStream(); tc.getOutputStream();
步驟5:斷開Telnet連接
tc.disconnect();
核心代碼:
//定義一個TelnetClient
TelnetClient tc=new TelnetClient();
try{
//連接到指定的FTP服務器
tc.connect(remoteip,remoteport);
}catch(IOEception ioe){
System.exit(1);
}
IOUtil.readWrite(tc.getInputStream(),tc.getOutputStream(),System.in,System.out);
try{
//斷開連接
tc.disconnect();
}catch(IOEception ioe){
}
其中調用的IOUtil類封裝了一些讀寫操作
public final class IOUtil{
public staic final void readWrite(final InputStream remoteInput,final OutputStream remoteOutput,final InputStream localInput,final OutputStream localOutput){
//定義讀寫的線程
Thread read,writer;
//定義讀線程的具體操作
reader=new Thread(){
@Override
public void run(){
int ch;
try{
//判斷沒被中斷的時候
while(!interrupred()&&(ch=localInput.read())!=-1){
//寫自己到遠程輸入里面
remoteOutput.write(ch);
//刷新發送
remoteOutput.flush();
}
}catch(IOException e){
}
}
};
//定義寫線程的具體操作
reader=new Thread(){
@Override
public void run(){
int ch;
try{
//把數據從輸入流復制到輸出流
Util.copyStream(remoteInput,localOutput);
}catch(IOException e){
System.exit(1);
}
}
};
//設置Writer線程
writer.setPriority(Thread.currentThread().getPriority()+1);
//啟動writer線程
writer.start();
//設置reader為后臺運行
reader.setDaemon(true);
//啟動readre線程
reader.start();
try{
//使得writer線程完成run()方法后,在執行join()方法后的代碼
writer.join();
//中斷reader線程
reader.interrupt();
}catch(InterruptedException e){
}
};
}
Share this:
總結
以上是生活随笔為你收集整理的android telnet服务器端,Android FTP客户端实现、Telnet客户端的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP会员登录实现记住密码功能 thin
- 下一篇: Android实现手机内存存储功能