1

http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html

finally 句の disconnects() の例に気付きましたが、logout() については同じことをしていません

FTPClient ftp = new FTPClient();
FTPClientConfig config = new FTPClientConfig();
config.setXXX(YYY); // change required options
ftp.configure(config );
boolean error = false;
try {
  int reply;
  ftp.connect("ftp.foobar.com");
  System.out.println("Connected to " + server + ".");
  System.out.print(ftp.getReplyString());

  // After connection attempt, you should check the reply code to verify
  // success.
  reply = ftp.getReplyCode();

  if(!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    System.err.println("FTP server refused connection.");
    System.exit(1);
  }
  ... // transfer files
  ftp.logout();
} catch(IOException e) {
  error = true;
  e.printStackTrace();
} finally {
  if(ftp.isConnected()) {
    try {
      ftp.disconnect();
    } catch(IOException ioe) {
      // do nothing
    }
  }
  System.exit(error ? 1 : 0);
}

例外をキャッチしたときに logout() が必要ない理由を知っている人はいますか?

4

2 に答える 2

0

FTPClient ライブラリについてはよくわかりませんが、ドキュメントに記載されている説明を考慮して、該当する場合は、サーバーから切断することはプロセスの一部としてログアウトすることを意味すると想定しても安全だと思います。

disconnect() : FTP サーバーへの接続を閉じ、接続パラメーターをデフォルト値に戻します。

logout() : QUIT コマンドを送信して FTP サーバーからログアウトします。

http://commons.apache.org/proper/commons-net/apidocs/org/apache/commons/net/ftp/FTPClient.html

于 2013-10-14T20:48:53.580 に答える