Androidのアプリ開発関連のブログ

UIスレッドで接続しようとしてるからかもしれん・・・

jsch使ってSSHしようとしたらよくわからん例外出てダメだったが、ganymed-ssh-2の方も試してみた。


ganymed-ssh-2のビルド方法がわからなかったが、
android create lib-project
でライブラリ用のプロジェクトを作成して、srcにソースを全部コピー。

アプリのプロジェクト側で、project.propertiesに、
android.library.reference.1=../ganymed-ssh-2
って感じで作成したlib-projectへの相対パス書いたら使えたぽい。


で、ganymed-ssh-2の方で試してみたんだが、こっちも、
conn.connect();
でそれっぽいの出力されないが何か例外発生しちゃってる。

お手上げか・・・
と思ったんだが、これUIスレッドで通信しようとして例外発生してるのかもしれんことに気づいた。
時間かかっちゃったから明日非同期で試してみる。


今日はjschもganymed-ssh-2も全く動かなかったが、
jschの方はInputStreamとOutputStreamを設定して勝手に読み書きする感じぽいが、
ganymed-ssh-2の方はInputStreamを取得して、それがサーバーからのレスポンスみたい。
jschの方はOutputStreamがレスポンスと判断したんだが、それだとメモリで読み取ろうとすると排他処理が必要なはずで無理ぽい気が・・・
ganymed-ssh-2の方はInputStreamなんで、1行ずつ読み取りができるから排他処理が不要。
と思ったんだが、jschの方、InputStreamとOutputStream逆に判断してるような・・・
JavaのInputStreamとOutputStreamは単純なファイル読み書き以外で使うとどっちがどっちだかわからんわ。

ちょっと使った感じだと、ganymed-ssh-2の方がわかりやすいかなーって感じ。
まあ、続きは明日試す。
非同期で通信できないようならお手上げだな。