如何解决SocketException:序列化时重置连接
我有一个基本的TCP连接,我通过串行化将一个对象从客户端发送到服务器。但是执行此简单任务时出现错误,下面是代码:
客户:
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()。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。