apache FTP 實現問題解決

2021-05-22 02:51:27 字數 3370 閱讀 1001

整合工具包,寫ftp的實現,出現了問題,解決如下

apach自帶的ftpexample的類

/***略掉了包和 import的說明部分***/

043public

final

class  ftpexample  

044       

068069

if  ((args.length - base) != 5 )  

070               

074075             server = args[base++];  

076             username = args[base++];  

077             password = args[base++];  

078             remote = args[base++];  

079             local = args[base];  

080081

ftp  = new  ftpclient();  

082ftp .addprotocolcommandlistener(new  printcommandlistener(  

083new  printwriter(system.out)));  

084085

try086               

101             }  

102catch  (ioexception e)  

103               

110catch  (ioexception f)  

111                       

114                 }  

115                 system.err.println("could not connect to server." );  

116                 e.printstacktrace();  

117                 system.exit(1 );  

118             }  

119120     __main:  

121try

122               

129130                 system.out.println("remote system is "  + ftp .getsystemname());  

131132

if  (binarytransfer)  

133ftp .setfiletype(ftp .binary_file_type);  

134135

// use passive mode as default because most of us are

136// behind firewalls these days.

137ftp .enterlocalpassivemode();  

138139

if  (storefile )  

140                   

149else

150                   

159160

ftp .logout();  

161             }  

162catch  (ftpconnectionclosedexception e)  

163               

168catch  (ioexception e)  

169               

173finally

174               

181catch  (ioexception f)  

182                       

185                 }  

186             }  

187188             system.exit(error ? 1  : 0 );  

189         } // end main

190191     } 

**中第137行ftp .enterlocalpassivemode();

然後我查了api相關的幾個方法 enterlocalactivemode,enterremoteactivemode,enterremotepassivemode。

我的理解大概是這樣的

enterlocalpassivemode:設定客戶端pasv模式

static int passive_local_data_connection_mode

enterlocalactivemode:設定客戶端port模式

static int active_local_data_connection_mode

enterremoteactivemode:server to server

static int active_remote_data_connection_mode

requiring the one(client) connect to the other server's data port to initiate a data transfer.

enterremotepassivemode:server to server

static int passive_remote_data_connection_mode

requiring the other server to connect to the first server's data port to initiate a data transfer

對ftp 協議了解的不太清楚是乙個很大的原因,有時間要看看ftp 協議的內容了。

查了一些資料:

ftp 傳輸有兩種模式:主 動模式(port)和被動模式(pasv)

主動模式:客戶端主動連伺服器端;埠用20

被動模式:伺服器端連客戶端;隨機開啟乙個高階埠(埠號大於1024)

小提示:有防火牆使用者不能使用主動模式 ,這是因為防火牆不允許來自網外的主動連線,所以使用者必須同使用被動模 式。

//enterlocalpassivemode:設定客戶端pasv模式 (客戶端主動連伺服器端;埠用20)

ftpclient.enterlocalpassivemode();

//enterlocalactivemode:設定客戶端port模式  (伺服器端連客戶端;隨機開啟乙個高階埠(埠號大於1024))

ftpclient.enterlocalactivemode();

//sun

oom問題解決

dalvik虛擬機會為應用程式分配固定大小的heap 如果使用超過了這個heap的大小,且沒有可被 物件,就會報oom。多張較大會迅速占用空間造成oom。我們可以使用一下的方法來減少這種情況的產生 1.減少單張的大小,根據螢幕大小來對bitmap做resize。private void setima...

too many open files問題解決辦法

今天用 往liunx中寫檔案,檔案很多 執行一會就日誌上就報錯 too many open files 結果找了半天才解決這個問題,現在給大家分享一下。首先用 ulimit a 命令看看linux的open files值是多少,結果乙隻有1024,不夠用的。然後修改linux的配置檔案,修改 etc...

haoop問題解決

1.namenode不能啟動 cannot lock storage tmp dfs name.the directory is already locked.上網查了查,基本上有兩個辦法 1.重新格式化namenode 2.許可權問題 chown r hadoop hadoop tmp dfs n...