import java.io.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+'}'; }}
import java.io.*;import java.net.DatagramPacket;import java.net.DatagramSocket;public class ObjectTypeServer { public static void main(String[] args) { DatagramSocket datagramSocket = null; ObjectInputStream objectInputStream = null; try{ datagramSocket = new DatagramSocket(9999); byte[] bytes = new byte[1024]; DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length); //对接收的内容作类型转换 objectInputStream = new ObjectInputStream(new ByteArrayInputStream(datagramPacket.getData())); System.out.println(objectInputStream.readObject()); }catch (Exception e){ e.printStackTrace(); }finally { if(datagramSocket!=null){ datagramSocket.close(); } if(objectInputStream!=null){ try { objectInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }}
import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetSocketAddress;public class ObjectTypeClient { public static void main(String[] args) { DatagramSocket datagramSocket = null; ByteArrayOutputStream byteArrayOutputStream = null; ObjectOutputStream objectOutputStream = null; try{ Person person = new Person(); person.setAge(25); person.setName("老耿"); byteArrayOutputStream = new ByteArrayOutputStream(); objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); objectOutputStream.writeObject(person); byte[] arr = byteArrayOutputStream.toByteArray(); DatagramPacket datagramPacket = new DatagramPacket(arr,arr.length,new InetSocketAddress("127.0.0.1",9999)); datagramSocket=new DatagramSocket(8888); datagramSocket.send(datagramPacket); }catch(Exception e){ e.printStackTrace(); }finally { if(datagramSocket!=null){ datagramSocket.close(); } if(objectOutputStream!=null){ try { objectOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } if(byteArrayOutputStream!=null){ try { byteArrayOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }}