我在我的Android应用程序中打开了一个常规java套接字,我必须用它来发送请求和接收响应,我正在发送请求但是没有从服务器收到任何响应,我检查了服务器连接和它没关系,我也尝试通过Hercules收听,请求正常发送,服务器正常发送响应,这是我正在使用的常规套接字编码:
public static void xbmc_connect(){
try {
xbmc_socket = new Socket(xbmc_address, xbmc_port);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void xbmc_sendingDataToSystem(String data) throws IOException{
xbmc_output = new DataOutputStream(xbmc_socket.getOutputStream());
xbmc_output.writeBytes(data);
}
public String xbmc_getServerResponse() throws JSONException{
String responseLine, server_response = null_string;
try {
xbmc_input = new BufferedReader(new InputStreamReader(
xbmc_socket.getInputStream()));
System.out.println(xbmc_input.toString());// doesn't print anything
} catch (IOException e) {
}
try {
while ((responseLine = xbmc_input.readLine()) != null) {
server_response = server_response + responseLine ;
}
return server_response;
}
答案 0 :(得分:2)
简而言之:xbmc_input
是BufferedReader
。 要从BufferedReader读取,您必须使用read()
或readLine()
。
使用String
获取BufferedReader的toString()
表示没有多大意义。 调用toString()
不会使BufferedReader
打印出可能收到的任何内容。 toString()
只需打印BufferedReader
对象 - 即对象的引用 。
因此,要打印实际收到的内容(如果有的话),您可以尝试:
System.out.println(xbmc_input.readLine());