为什么我的套接字没有收到响应?

时间:2014-02-10 15:16:48

标签: java android sockets

我在我的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;

}

1 个答案:

答案 0 :(得分:2)

简而言之:xbmc_inputBufferedReader 要从BufferedReader读取,您必须使用read()readLine()

使用String获取BufferedReader的toString()表示没有多大意义。 调用toString()不会使BufferedReader打印出可能收到的任何内容。 toString()只需打印BufferedReader对象 - 即对象的引用

因此,要打印实际收到的内容(如果有的话),您可以尝试:

System.out.println(xbmc_input.readLine());