1
私はJavaとAndroidのプログラミングは初めてですが、私にはこのプロジェクトが必要です。Android:連続ソケット書き込み
アプリは、すべての情報を受信して同等のコマンドを実行するサーバーにバイトを送信します。クライアントとサーバーは排他的なリンクになっているので、セキュリティ上の問題は心配しません。 I上記のコードでは
public class NetworkTask extends AsyncTask<Void, byte[], Boolean> {
OutputStream dataOut; //Network Output Stream
@Override
protected void onPreExecute() {
Log.i("AsyncTask", "onPreExecute");
}
@Override
protected Boolean doInBackground(Void... params) {
boolean result = false;
while (sendData) { //While Boolean sendData is true
try {
gsocket = new Socket(roubotIP, roubotPort);
byte[] data = EncodingUtils.getAsciiBytes(outData);
Log.i("Data: ", outData);
dataOut = new DataOutputStream(gsocket.getOutputStream());
dataOut.write(data);
} catch (UnknownHostException e) {
Log.i("Socket: ","Unkown host");
e.printStackTrace();
result = true;
} catch (IOException e) {
e.printStackTrace();
result = true;
} catch (Exception e) {
e.printStackTrace();
result = true;
}
}
try {
dataOut.close();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
は、サーバーへの接続を確立することができましたが、データは唯一のソケットごとに1〜2秒に書き込む/送信されます。
これを連続して実行する方法はありますか? (最小約0.5秒以下)
バッテリーの寿命は私にとっては問題ではなく、継続的にアクティブなソケットには問題があると受け入れています。
ありがとうございました。
まあ、私のJavaは錆びていますが、あなたが望むものが確かに時間を食べるだろうと仮定したループを通して毎回新しいソケットを作成しているように見えます。 – Duck
@ダック、私もこれをやってみました:http://dl.dropbox.com/u/22027127/helpv2.txtしかし、バイトは一度だけ送信/サーバーに一度書き込まれます。 – mikko3024