通过socket的套接字在客户端与服务之间传送可序列化化对象student
/*Student*/
public class Student implements Serializable {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/*客户端程序*/
/*客户端程序*
public class Client {
public static void main(String[] args) {
Student student1 = new Student();
student1.setName("张三");
student1.setAge(8);
ObjectInputStream objectInputStream =null; //对象输入流实例
ObjectOutputStream objectOutputStream =null; //对象输出流实例
try {
Socket socket = newSocket("127.0.0.1", 8088);
objectOutputStream =new ObjectOutputStream(socket.getOutputStream());
objectInputStream =new ObjectInputStream(socket.getInputStream());
objectOutputStream.writeObject(student1);
objectOutputStream.flush();
Studentstudent2=(Student) objectInputStream.readObject();
System.out.println("返回学生的姓名"+student2.getName());
System.out.println("返回学生的年龄"+student2.getAge());
objectOutputStream.close();
objectInputStream.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
/*服务器*/
public class Service {
public static void main(String[] args) {
ObjectInputStream objectInputStream =null; // 对象输入流实例
ObjectOutputStream objectOutputStream =null; // 对象输出流实例
try {
ServerSocket ss = newServerSocket(8088);
System.out.println("服务器已经启动");
while (true) {
Socket socket = ss.accept();
objectInputStream = new ObjectInputStream(socket.getInputStream());
objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
Student student1=(Student)objectInputStream.readObject();
System.out.println("学生的姓名"+student1.getName());
System.out.println("学生的年龄"+student1.getAge());
Student student2=new Student();
student2.setName("李四");
student2.setAge(60);
objectOutputStream.writeObject(student2);
objectOutputStream.flush();
objectInputStream.close();
objectOutputStream.close();
socket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
在服务器端的结果截图
在客户端的结果如下
现在将客户端的代码作如下修改
将红框中的两行代码互换位置以后,问题就出现了。服务器段和客户端就没有结果,不能相互接受到对方的信息,求大神帮帮忙了!