2

現在、AndroidデバイスからJava TCPサーバーにファイルを転送しようとしていますが、これを実装するために必要な構造を説明する良い例を見つけることができません。ファイル転送を説明するJavaClient&Serverの例はたくさんありますが、Androidデバイスをそこに投入してもこれが機能するかどうかを確認したいと思います。

私の質問は、この種の構造をどのように実装するかです。それが機能しない場合は、HTTP接続を介してPHPサーバーにファイルを送信する方がよいでしょうか?後者の方法については、オンラインで多くの例とドキュメントを参照しているので、より信頼性が高いと思います。ただし、Javaサーバーを使用したいと思います。

このファイルは、Androidデバイスによって記録された座標の大規模なセットで構成されており、サーバーに送信されます。このデータをどのように保存するかはまだ確立していませんが、元々はプリミティブテキストファイルに保存する予定でした。

4

1 に答える 1

3

設計

最初に必要なのは、サーバーでJavaコードを実行できるようにするためのものです。

いくつかのオプションがあります。最も人気のあるテクノロジーの2つは、GlassfishApacheTomcatです。

大まかに言えば、Apache Tomcatは単純なクライアント/サーバー通信には十分であり、より複雑なことを行う必要がある場合はGlassfishが使用されます。どちらも、サーブレット(Javaで記述された本質的に自己完結型のサーバークラス)をサーバー側で実行できるようにします。

要求を受信するたびにJVM(Java仮想マシン)を起動することにより、クライアントとの通信を処理します。JavaサーブレットはJVM内で実行でき、応答をクライアントに返送する前に、必要に応じて何らかの処理を実行します。新しい要求はそれぞれ、サーブレットの新しいインスタンスで実行されます。これにより、複数の同時リクエストの処理が簡単になります(より複雑なスレッド化は必要ありません)。

大まかなアプリケーションサーバーの設計

ネットワーク(サーバーとの間でデータを送受信する)

ネットワークの状況では、クライアントはPC、Android電話、またはインターネットに接続できるその他のデバイスにすることができます。サーバーに関する限り、クライアントがHTTP(サーバーが理解する標準プロトコル)を使用して通信できる場合、サーバーはどのような種類のデバイスであるかを気にしません。これは、PCデスクトップクライアントサーバーアプリケーションのソリューションが電話のソリューションに似ていることを意味します。

Apache HTTPコンポーネントなどのライブラリを使用して、デバイスとサーバー間のHTTP要求と応答の処理を容易にすることができます。もちろん、Socketsを使用してこれを行うための独自のクラスを作成することもできますが、これは、特にこれまでに行ったことがない場合は、非常に時間がかかります。

データの保存

時間があれば、情報を保存するために何らかのデータベースを実装することをお勧めします。これらには、データ回復メカニズム、データの高速検索のためのインデックス作成、データの整合性の確保、データの構造化の改善など、多くの利点があります。データベースを使用する場合は、MySQLをお勧めします。これは無料で、さらに重要なことに、十分に文書化されています。

余談ですが、 JDBCは、Javaを使用してデータベースと通信するために使用できます。


インラインハイパーリンクについて申し訳ありません-どうやら私の評判は2つ以上投稿するのに十分なほど高くありません!

出典:同様の設計を実装した個人的な経験。

于 2012-07-12T21:43:29.613 に答える