Try the following for reading:
BufferedReader in = new BufferedReader(new InputStreamReader(xmbc_socket.getInputStream()));
String line = null;
StringBuilder responseData = new StringBuilder();
while((line = in.readLine()) != null) {
responseData.append(line);
}
Don't forget to close the BufferedReader when done:
in.close();
Now, the data from your server is store in responseData and can be accessed:
responseData.toString();
Or, if you want the data in a char array, you can use the the getChars method of your StringBuilder: http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html
In your case:
char charArray[] = new char[responseData.length()];
responseData.getChars(0, responseData.length(), charArray, 0);
Now charArray holds your data. Now, try parsing and checking the content. If it's still slow, maybe your connection is too slow, or your logic is slow.