1
我是Java和Android編程的新手,但這個項目需要我這樣做。Android:連續套接字寫入
應用程序將字節發送到服務器,該服務器接收發送給它的所有信息並執行等效命令。客戶端和服務器處於獨佔鏈接,所以我不擔心安全問題。
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 2012-02-06 03:53:33
@Duck,我也試過這樣做:http://dl.dropbox.com/u/22027127/helpv2.txt但字節只能發送/寫入服務器一次。 – mikko3024 2012-02-06 05:29:24