解决方案 »

  1.   

    在server code中,
    如果我想将收到的信息再发出去,应该怎么搞?
    socket.shutdownOutput();执行之后就不能再对outpustream进行操作了。
      

  2.   

    大神,同求,帮忙发一份我邮箱,感谢。[email protected]
      

  3.   

    output.write(str.getBytes("gbk")); //这地方加一个标志位,比如@@ 这个符号
     output.flush();
      //半关闭socket  
        socket.shutdownOutput();//这句话可以不要。读取的时候 读取标志位,如果读到标志位就break 就可以了。
      while ((line = bff.readLine()) != null) {
                        buffer = line + buffer;
       }
      

  4.   


    如果不要 socket.shutdownOutput();//这句话可以不要。client根本就收不到server的信息。
      

  5.   

    [email protected] 麻烦发给我,感谢。
      

  6.   


    output.write(str.getBytes("gbk")); //这地方加一个标志位,比如@@ 这个符号 
    如何加标志位,可以说说原理么?
      

  7.   

      while ((line = bff.readLine()) != null) {
                        buffer = line + buffer;
       }
    按行读取的,如果你不关闭流 就会一直阻塞状态, 所以无法跳出循环,你加了标志位就能跳出循环了,还不需要关闭流。
      

  8.   

    调用readLine()线程发生阻塞,其原因是该方法读取的数据要以‘\n‘结尾readLine()读取到才会为null,否则一直循环下去,发生阻塞。
    http://blog.csdn.net/it_talk/article/details/28648445