/**
* 当该对象需要在网络上传输时,一定要实现Serializable接口
*/
public class Person 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;
}
@Override
public String toString(){
return "Person{" +
"name='" + name + '\'' +
",age=" + age +
'}';
}
}
创建服务端
public class ObjectTypeServer {
public static void main(String[] args){
try(DatagramSocket datagramSocket = new DatagramSocket(9999);){
byte[] b = new byte[1024];
DatagramPacket dp = new DatagramPacket(b,b.length);
datagramSocket.receive(dp);
//对接收的内容做类型转换
try(ObjectInputStream objectInputStream = new ObjectInputStream(new ByteArrayInputStream(dp.getData()))){
System.out.println(objectInputStream.readObject());
}catch(Exception e){
e.printStackTrace();
}
}
}
}
创建客户端
public class ObjectTypeClient {
public static void main(String[] args){
try(DatagramSocket datagramSocket = new DatagramSocket(8888);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream()
){
Person p = new Person();
p.setName("abc");
p.setAge(18);
oss.writeObject(p);
byte[] arr = bos.toByteArray();
DatagramPacket dp = new DatagramPacket(arr,arr.length,new InetSocketAddress("127.0.0.1",9999));
datagramSocket.send(dp);
}catch(Exception e){
e.printStackTrace();
}
}
}