谢谢,不长就是,有一个异常java.io.StreamCorruptedException: invalid type code: AC解决不了

解决方案 »

  1.   

    出错原因是在online方法取oos的地方,因为你对同一个socket.getOutputStream()做了两次封装,所以出错。
    修改方法是从ArrayList<ObjectOutputStream>里取出oos
    public void online(Object o, Socket soc) {
            try {
                for (int i = 0; i < 45; i++) {
                    if ((socket[i] != null) && (socket[i] != soc)) {
                        ObjectOutputStream oos = outputList.get(i); // 这边直接取已经封装好的oos
                        oos.writeObject(o);
                        logger.info("---------5-------");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }