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){}
}