0
對於新項目,我正在使用GPS跟蹤設備。該設備每10秒發送一次信息給我的java服務器。我也創建了一個android應用程序。在android應用程序中,我打開與服務器的連接,發送數據並再次關閉連接。從GPS跟蹤設備讀取,輸入流
問題是跟蹤設備不會每次都關閉連接。
我有什麼:
我有一個啓動一個新線程時,有一個新的連接multithreades服務器。 我可以閱讀跟蹤器發送給我的信息,但只有第一個點,然後我不再收到信息(好吧,我收到它,但我不能讓它顯示)。
當我使用的代碼.readLine()它的工作原理,如果我關閉跟蹤器(和連接。但那不是解決辦法,這不叫現場跟蹤
這是我現在用的閱讀部分
public Request(Socket connectionSocket) throws IOException {
System.out.println(connectionSocket.getInetAddress().toString());
InputStreamReader temp = new InputStreamReader(connectionSocket.getInputStream());
StringBuilder out = new StringBuilder();
int read = 0;
out = new StringBuilder();
char[] buffer = new char[0x127];
do {
System.out.println("test");
read = temp.read(buffer, 0, buffer.length);
System.out.println(temp.toString());
if (read > 0) {
out.append(buffer, 0, read);
}
System.out.println(out.toString());
this.handleRequest(out.toString());
} while (temp.read() != 0);
connectionSocket.close();
clientSentence = out.toString();
System.out.println(out.toString());
}
有人能幫助我,我怎麼會閱讀所有信息,這些信息串總是長127個字符。
感謝
Wouter
如果你需要長度爲127,用char [] buffer = new char [127];替換'char [] buffer = new char [0x127];''。 0x值被解釋爲十六進制,它是十進制的295。如果您嘗試讀取295個字節並僅發送127個字節,則read()將永遠等待,否則緩衝區永遠不會被填充。 – Stephan
我改變了,但那不是解決方案。抱歉。事實上,我會打開連接。該設備發送127個字符...我需要這些字符。 10秒鐘後設備再次發送。然後。我再次需要這些字符......所以連接必須保持開放,但每次需要127個字符。 – TwinsIT