繁体   English   中英

SocketException:序列化时连接重置

[英]SocketException: Connection reset when serializing

我有一个基本的 TCP 连接,我通过序列化将 object 从客户端发送到服务器。 但是在执行这个简单的任务时我遇到了一个错误,下面是代码:

客户:

public client() throws IOException{
    Socket socket = new Socket("127.0.0.1", 4390);
    System.out.println("Client connected with server");
    
    Student student = new Student(1, "jemoi", "lerry");
    
    ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
    oos.writeObject(student);
}

服务器:

public server() throws IOException, ClassNotFoundException{
    ServerSocket serverSocket = new ServerSocket(4390);
    
    System.out.println("Server initialized successfully");
    
    Socket socket = serverSocket.accept();
    
    ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
    Student student = (Student)ois.readObject();
    
    System.out.println("Object send from client: " + student.getFirstName());
}
    

错误:

Exception in thread "main" java.net.SocketException: Connection reset

错误发生在以下行:

Student student = (Student)ois.readObject();

找到了解决方案。 我忘记在客户端设置来自 ObjectOutputStream 的 close()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM