第一.java领域对象传输
1.1基于socket对象进行传输案例:
User
public classUser {privateString name;privateString age;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getAge() {returnage;
}public voidsetAge(String age) {this.age =age;
}
@OverridepublicString toString() {return "User{" + "name='" + name + '\'' + ", age='" + age + '\'' + '}';
}
}
SocketServerProvider
public classSocketServerProvider {public static void main(String[] args) throwsException{
ServerSocket serverSocket= new ServerSocket(8081);
Socket socket=serverSocket.accept();
ObjectInputStream ois= newObjectInputStream(socket.getInputStream());
User user=(User) ois.readObject();
System.out.println(user);
}
}
SocketClientConsumer
public classSocketClientConsumer {public static void main(String[] args) throwsException{
Socket socket= new Socket(InetAddress.getLocalHost(),8081);
User user= newUser();
user.setAge("23");
user.setName("张三");
ObjectOutputStream oos=
newObjectOutputStream(socket.getOutputStream());
oos.writeObject(user);
oos.close();
}
}
运行结果报错
解决报错,就是对 User 这个对象实现一个 Serializable 接口,再次运行就可以看到对象能够正常传输了
public class User implementsSerializable {privateString name;privateString age;publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getAge() {returnage;
}public voidsetAge(String age) {this.age =age;
}
@OverridepublicString toString() {return "User{" + "name='" + name + '\'' + ", age='"