本帖最后由 paodan 于 2010-11-05 10:47:29 编辑

解决方案 »

  1.   

    同学你可以这样改一下:将你那一块while循环替换为:
    byte[] temp = new byte[100];
    br.read(temp);
    String s = new (String)(temp).trim();
    system.ou.println(s);
    这样就好了!~
      

  2.   


                        System.out.println("客户端开始读取时间t1:" + t1);
                        while ((msg = br.readLine()) != null) {//*********这里花了很长的时间*********
                            System.out.println(msg);
    //                    os.write((msg+"\r\n").getBytes());
                            String t2 = buildTimeStamp();
                            System.out.println("客户端读取完成时间t2:" + t2);
                            System.out.println("客户端开始读取时间t1:" + t2);
                        }
                        os.close();
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (ParseException e) {                    e.printStackTrace();
                    }
                    String t2 = null;
                    try {
                        t2 = buildTimeStamp();
                    } catch (ParseException ex) {
                        Logger.getLogger(MultiThreadClient.class.getName()).log(Level.SEVERE, null, ex);
                    }
                    System.out.println("客户端断开连接时间t2:" + t2);
      

  3.   

    // 发送关闭命令
    OutputStream os = socket.getOutputStream();//下面是新加的
    PrintWriter pw=new PrintWriter(os);//发信息直接这样发
    pw.print(info+"\r\n");
    pw.flush();这样就没有问题了。
    不过一般都不用readline的方法来读数据 。
      

  4.   

    3楼、8楼 正解,支持个。具体需要看readLine实现。