这个应该不支持吧。不太明白你的需求。
如果你想作为一次数据的传递结束标志,那么不应该使用这样的方法,而是应该在开始传输数据前就先预计算传输大小或者传递特殊字符作为结束标志

解决方案 »

  1.   

    这个方法是不会错的,我看API看到的,那我详细写一下啊!public static boolean send(String protocolXML, Player player) {
    DataOutputStream dos = null;
    try {
    if (player instanceof Robot) { //是机器人
    Robot robot = (Robot) player;
    robot.respond(protocolXML);
    } else {
      if( player.getSocket()  != null){ //scoket不为空
    dos = new DataOutputStream( player.getSocket().getOutputStream() );
    dos.writeUTF( protocolXML );
       }
    }
    }
    这个适用于发送消息的方法,我的程序是多线程的.如果没发一次都要new()一个DataOutputStream而不去关闭,肯定是浪费资源啊.我是想在finally里面关闭这个流.
    但是我关闭这个流后,对应的Socket也就关闭了.客户端回报错
    所以就想到了有个半关闭,但用了shutdownOutput()方法,还是不管用.那位有高招吗?多多指教
    另外有个群大家可以交流java方面的技术,群号:77057548
      

  2.