我是客户端是这样写的
      Socket socket = new Socket("10.10.1.22", 23007);
      BufferedReader in = new BufferedReader(new InputStreamReader(socket.
          getInputStream()));
      PrintWriter out = new PrintWriter(socket.getOutputStream(), true);      out.println(xmlStr);
      xmlReponse = in.readLine();
现在能给服务器发送过去,可是xmlReponse = in.readLine();读不出来,在网上搜了很多,是因为服务器没有强制添加换行符的原因吧,然后看过有人提示使用read方法解决。我写成这样了,
      int bytesRead = -1;
      StringBuffer xmlResponseBuffer = new StringBuffer();
      while ( (bytesRead = in.read()) != -1) {
        xmlResponseBuffer.append((char) bytesRead);
      }
      xmlReponse = xmlResponseBuffer.toString().trim();
      LogFiles.printTrade("## 查询返回的交易字符串: " + xmlReponse);
但是问题依旧,请高手指点

解决方案 »

  1.   

    out.flush();哈哈!你得刷新一下!
      

  2.   

    第二,
    while ( (bytesRead = in.read()) != -1) { 
            System.out.print((char) bytesRead)); // 你还是直接打印出来看看吧! 
     } 
      

  3.   

    他PrintWriter里不是设为true了么,println时会自动刷新啊?
      

  4.   


    Socket client = new Socket("localhost", 8888);
    BufferedReader bufConsole = new BufferedReader(
    new InputStreamReader(System.in));
    BufferedReader buf = new BufferedReader(new InputStreamReader(
    client.getInputStream()));
    PrintStream ps = new PrintStream(client.getOutputStream());
    System.out.println(buf.readLine());
    while (true) {
    String strConsole = bufConsole.readLine();
    ps.println(strConsole);
    if (strConsole.equalsIgnoreCase("quit")) {
    System.out.println("bye~!");
    break;
    }
    String str = buf.readLine();
    System.out.println("From server:" + str);
    服务器正确,这个client应该就可以执行的。