Android で NTP を使う (Apache)


20140207ntp_client

Android で NTP を使う方法を調べていたら、
Apache Commons Net を使う方法を見つけました。
試してみたところ、すんなり動きました。
ClockSync と比較してみたところ、2ms の違いがありますが、実用的な範囲です。

20140207clock_sync

ソースは code.google で公開しています。
なお、Apache Commons Net は含まれていませんので、別途ダウンロードしてください。

参考
Apache Commons Net
NTPSync


Android の FTPS (FTP on SSL) Client


Android の FTP Client をベースに FTPS (FTP on SSL) Client を作成しました。

ポイントは2つ。
(1) Apache Commons Net の FTPClient の代わりに FTPSClient を使用する。
 これで制御チャネルは SSL 対応になります。
 
(2) execPROT(“P”) を実行する。
 デフォルトではデータチャネルは平文です。
 上記を実行することで、暗号化されます。

ソースコードは code.google に置いています。

参考
Apache Commons Net : FTPSClient – execPROT

wikipedia: FTPS
データ転送チャネル(PORTまたはPASVコマンドで作成されるチャネル)での通信を暗号化する場合、PROTコマンドを用いて保護レベルをP (Private) に設定する必要がある。


Android の FTP Client


Apache Commons Net を使用して Android 用の FTP Client を作成しました。
Apache Commons Net は、FTP プロトコルを素直に実装しています。
サンプルコードを参考に簡単に実現できました。

Android では、Active mode は使用できないみたいなので、Passive mode を使用しました。
なお、アップロードするファイルとダウンロードするファイルは固定です。
ファイルを選択できるよう改変にすれば、簡易的な FTP Client アプリが出来るはず。

ソースコードは code.google に置いています。

参考
Apache Commons Net
Apache Commons Net : FTPClient
Jakarta Commonsによるネットワークプログラミング FTP
アクティブFTPとパッシブFTP