Java 为什么';我的插座没有收到响应吗?

Java 为什么';我的插座没有收到响应吗?,java,android,sockets,Java,Android,Sockets,我在android应用程序中打开了一个普通的java套接字,我必须使用它来发送请求和接收响应,我正常发送请求,但没有从服务器收到任何响应,我检查了服务器连接,一切正常,并且我尝试通过监听,请求正常发送,服务器正常发送响应,这是我使用的常规套接字编码: public static void xbmc_connect(){ try { xbmc_socket = new Socket(xbmc_address, xbmc_port); } catch (Unknown

我在android应用程序中打开了一个普通的java套接字,我必须使用它来发送请求和接收响应,我正常发送请求,但没有从服务器收到任何响应,我检查了服务器连接,一切正常,并且我尝试通过监听,请求正常发送,服务器正常发送响应,这是我使用的常规套接字编码:

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;

}

简而言之:
xbmc\u输入
是一个
缓冲读取器
要从BufferedReader读取,必须使用
read()
readLine()

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

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

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

我只是把它放在测试中,我不想让它打印任何可读的东西,我只想让它给我任何结果,让我知道它收到了任何东西,顺便说一下,我用这样的读取行打印它,也不给任何东西用toString()打印BufferedReader不会告诉你它是否收到了任何东西。您必须调用
read()
readLine()
。但是,我现在看到您至少在while循环中这样做了。在上面的catch语句中,执行
e.printStackTrace()
以确保没有引发异常。