socket通信 客户端报错

java.net.SocketException: Connection reset
服务端
public static void main(String[] args) {

 ConfigManager man=ConfigManager.getInstance();
 List<CommandGroup> group=man.getCommandGroup();
 List<Socket> socket=null;
 try {
    ServerSocket server=new ServerSocket(9123);
    socket=new ArrayList<Socket>();
    while (true) {
        server.setSoTimeout(5000);
        Socket sockcet= server.accept();
        socket.add(sockcet);
    }

} catch (IOException e) {
    // TODO Auto-generated catch block          
    e.printStackTrace();
}

 for (int i = 0; i < socket.size(); i++) {
        byte[] buf=OtherUtils.toSerialize(group.get(0));
        PackageFactory.write(buf, socket.get(i));
    }

}


客户端

 public static void main(String[] args) {
        try {
            Socket socket=new Socket("localhost", 9123);
            System.out.println(socket.isClosed());
            ObjectInputStream inputStream = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
            CommandGroup group =(CommandGroup) inputStream.readObject();
            System.out.println(group.getLoop());
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

报错:图片说明

java.net.SocketException: Connection reset异常产生的原因有两方面:
1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。
2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连接断开后的读和写操作引起的。
检查下你的是否存在客户端程序退出了,但是outputstream流并没有关闭呢。

以后logcat直接复制粘贴不要截图,还有要尽量改用AndroidStudio

尽量使用AndroidStudio