0

Android アプリ (クライアント) から Java サーバーに文字列を送信しようとしています。Java サーバーは、多くの Android クライアントからのメッセージを待機し、それらをファイルに保存します。クライアント側のコーディングは優れています。チュートリアルとブログの助けを借りて書いたものを以下に示します。

HttpURLConnection conn = null;
    try {
        Log.e("URL", "> " + url);
        conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setUseCaches(false);
        conn.setFixedLengthStreamingMode(bytes.length);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type",
                "application/x-www-form-urlencoded;charset=UTF-8");
        // post the request
        OutputStream out = conn.getOutputStream();
        out.write(bytes);
        out.close();
        // handle the response
        int status = conn.getResponseCode();
        if (status != 200) {
          throw new IOException("Post failed with error code " + status);
        }
    } finally {
        if (conn != null) {
            conn.disconnect();
        }

私が欲しいのは、さまざまなAndroidアプリからのこれらのメッセージを処理し、メッセージ文字列をテキストファイルに保存できるJavaのサーバーです。これらの着信メッセージを処理して空の文字列にする方法を知りたいだけです。

これまでのところ、次のサーバー側コーディングでいくつかの小さな試行を行ってきました。

int port = 8080;
    ServerSocket ss = new ServerSocket(port);
    Socket s = ss.accept();
    while(true) {
       if (s == null) {
            /* nothing to do */
            try {
                wait();
            } catch (InterruptedException e) {
                continue;
            }
        }
        try {
            InputStream is = new BufferedInputStream(s.getInputStream());
            PrintStream ps = new PrintStream(s.getOutputStream());
            ANDROID_DEVICE = ps.flush();       
        }catch(IOException e){}
    }
4

2 に答える 2

0

以前に Web 開発を行ったことがあるかどうかはわかりません。クライアント コードは HTTP プロトコルを使用しているため、Web サーバーを使用する方が理にかなっています。実際、独自のサーバーを作成するよりも、 Tomcatなどの Web コンテナーを使用する方がはるかに簡単です。次に、HTTP 要求を処理するサーブレットを作成する必要があります。

Web 開発に関しては、Java に限定されないことに注意してください。サーバー側をphp、.netなどで記述できます。

ただし、単純なクライアント/サーバー (1 つのクライアントのみ) のみを探している場合。次に、この zerioh.tripod.com/ressources/sockets.html を参照できますが、これは新しいクライアント コードを使用する必要があることを意味します。

于 2013-07-02T10:39:42.540 に答える
0

この問題に取り組むには多くの方法があります。以下にいくつかを示します。1) アプリケーション サーバーを使用し、Android クライアントからのリクエストを受け入れる Web サービスをインストールします。2) 独自のサーバーを作成します。Android クライアントからのリクエストを受け入れるリモート オブジェクトを登録します。RMI(Remote Method Invocation)を利用することで、クライアント・サーバー・アーキテクチャを実現できます。3) Android でサポートされている場合は JMS を使用します。

于 2013-07-02T09:47:08.260 に答える