1. import java.io.Serializable;
    2. public class Person implements Serializable {
    3. private String name;
    4. private int age;
    5. public String getName() {
    6. return name;
    7. }
    8. public void setName(String name) {
    9. this.name = name;
    10. }
    11. public int getAge() {
    12. return age;
    13. }
    14. public void setAge(int age) {
    15. this.age = age;
    16. }
    17. @Override
    18. public String toString() {
    19. return "Person{"+
    20. "name'"+name+'\''+
    21. ",age="+age+'}';
    22. }
    23. }
    1. import java.io.*;
    2. import java.net.DatagramPacket;
    3. import java.net.DatagramSocket;
    4. public class ObjectTypeServer {
    5. public static void main(String[] args) {
    6. DatagramSocket datagramSocket = null;
    7. ObjectInputStream objectInputStream = null;
    8. try{
    9. datagramSocket = new DatagramSocket(9999);
    10. byte[] bytes = new byte[1024];
    11. DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length);
    12. //对接收的内容作类型转换
    13. objectInputStream = new ObjectInputStream(new ByteArrayInputStream(datagramPacket.getData()));
    14. System.out.println(objectInputStream.readObject());
    15. }catch (Exception e){
    16. e.printStackTrace();
    17. }finally {
    18. if(datagramSocket!=null){
    19. datagramSocket.close();
    20. }
    21. if(objectInputStream!=null){
    22. try {
    23. objectInputStream.close();
    24. } catch (IOException e) {
    25. e.printStackTrace();
    26. }
    27. }
    28. }
    29. }
    30. }
    1. import java.io.ByteArrayOutputStream;
    2. import java.io.IOException;
    3. import java.io.ObjectOutputStream;
    4. import java.net.DatagramPacket;
    5. import java.net.DatagramSocket;
    6. import java.net.InetSocketAddress;
    7. public class ObjectTypeClient {
    8. public static void main(String[] args) {
    9. DatagramSocket datagramSocket = null;
    10. ByteArrayOutputStream byteArrayOutputStream = null;
    11. ObjectOutputStream objectOutputStream = null;
    12. try{
    13. Person person = new Person();
    14. person.setAge(25);
    15. person.setName("老耿");
    16. byteArrayOutputStream = new ByteArrayOutputStream();
    17. objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
    18. objectOutputStream.writeObject(person);
    19. byte[] arr = byteArrayOutputStream.toByteArray();
    20. DatagramPacket datagramPacket = new DatagramPacket(arr,arr.length,new InetSocketAddress("127.0.0.1",9999));
    21. datagramSocket=new DatagramSocket(8888);
    22. datagramSocket.send(datagramPacket);
    23. }catch(Exception e){
    24. e.printStackTrace();
    25. }finally {
    26. if(datagramSocket!=null){
    27. datagramSocket.close();
    28. }
    29. if(objectOutputStream!=null){
    30. try {
    31. objectOutputStream.close();
    32. } catch (IOException e) {
    33. e.printStackTrace();
    34. }
    35. }
    36. if(byteArrayOutputStream!=null){
    37. try {
    38. byteArrayOutputStream.close();
    39. } catch (IOException e) {
    40. e.printStackTrace();
    41. }
    42. }
    43. }
    44. }
    45. }