2010-12-06 49 views
3

私は一般的な設計の実装で質問があります。私よりも熟練した方が私を助けてほしい。サーバーからファイルをダウンロードする方法

私はアンドロイドクライアントとJavaサーバーに基づいてアプリケーションを実行したいと思います。ローカルWi-Fi通信、3Gなし。

基本的に、クライアントはサーバーに接続し、コードを使用してダウンロードするファイルを要求する必要があります。

どうすればいいですか?私が知っている

もの:

  • 私は、SDカード内のファイルを作成し、UIスレッドとの通信にハンドラを使用してプログレスバーを更新するために、クライアントでバックグラウンドスレッドを作成する必要があります。

  • サーバはマルチスレッドで非ブロックでなければなりません。

  • ファイルはmp3オーディオのようなバイナリファイルです。したがって、サーバーは次のようにする必要があります。

    1. ファイルに関する情報を送信します:nameとtotal length。
    2. ファイルを開き、最後に到達していない間にバイトを読み取り、送信します。

      1. は、ファイルに関する情報を受信して​​、空のファイルを作成します。

    3. クライアントがしなければなりません。
    4. バイトを読み込んで空のファイルにダンプします。更新プログレスバー。
    5. すべてのバイトが受信されると、ファイルを閉じます。

私はCに、クライアントとサーバを実装する知識(非常にひどい)を持っているが、私はJavaで行われ、実際のクライアント・サーバ・アプリケーションで始めています。

質問:私は、サーバーからクライアントにmp3などのバイナリファイルをダウンロードすることができますどのように



  • 私は自分のサーバーアプリケーションを置く必要がありますか?私は瓶を作り、それをフォルダに保存して、PCの起動時にそれを実行しなければならないと言っています。

ありがとうございます!

答えて

5

mp3のようなバイナリファイルをサーバからクライアントにダウンロードするにはどうすればよいですか? Javaを使用したファイルをダウンロードするに

、あなたはSystem.outに出力を表示しませんURL.openStream();

http://download.oracle.com/javase/tutorial/networking/urls/readingURL.html

を使用することができます。ファイルに書き出します。

FileOutputStream fos = new FileOutputStreamm(new File("path_to_file.mp3"); 
int byte; 

while ((byte= in.readLine()) != -1) 
    fos.write(byte); 

ここでサーバーアプリケーションを配置する必要がありますか。 本当に必要がない限り、サーバーを実装しないでください。もし可能ならばhttp-Serverを使います(TomcatやApache HTTPD)。 HTTP経由でファイルを利用できるようにします。

は、Java Serverを使用する場合は、Servletを書き、WAR - ファイルにそれをpackkage必要があります。

http://docstore.mik.ua/orelly/java-ent/servlet/

関連する問題