0
好的,所以我正在設計Android MUD客戶端作爲我學校項目的一部分。然而,在執行ANSI顏色解析時,我遇到了一個問題。我以字節爲單位讀取數據。我已經嘗試將字符「hex」設置爲'\ 033','27'和'0x1B',但我似乎無法使其檢測到轉義字符。有沒有什麼你可以看到我的檢查錯誤?此外,行「char check = String.valueOf(j).charAt(0);」是臨時的,我最初試圖檢查字符變量「十六進制」字節「j」。有沒有更好的方法來檢查角色?從套接字讀取時檢查轉義字符(0x1B, 033)
while(isConnected) {
int j = 0;
try {
int i = arrayOfByte.length;
j = streamInput.read(arrayOfByte, 0, i);
char check = String.valueOf(j).charAt(0);
Log.d("Console","Char is - " + check);
if (j == -1)
{
Log.d("Console","j = -1");
throw new Exception("Error while reading socket.");
} else if (j == 0) {
Log.d("Console","Continuing");
continue;
} else if (check == hex) {
Log.d("Console","Yo, daddio!");
} else {
final String strData = new String(arrayOfByte, 0, j).replace("\r", "");
runOnUiThread(new Runnable() {
public void run() {
textContent.append(strData);
scrollToBottom();
}
});
}
} catch (Exception e) {
Handler handlerException = GameWindow.this.mHandler;
String strException = e.getMessage();
final String strMessage = "Error while receiving from server:\r\nConnection terminated";
Runnable rExceptionThread = new Runnable()
{
public void run()
{
Toast.makeText(context, strMessage, 3000).show();
}
};
handlerException.post(rExceptionThread);
if(strException.indexOf("reset") != -1 || strException.indexOf("rejected") != -1)
{
isConnected = false;
try
{
connectionSocket.close();
}
catch (IOException e1)
{
e1.printStackTrace();
}
}
isConnected = false;
}
}
我不知道我如何能忽略的是,由於一噸,先生! – Jon 2013-05-08 18:16:48