obinna
obinna

Reputation: 27

How to deserialize in Java

Am new to Java Networking and am trying to deserialize a message sent over the network using datagramPacket. But am getting something different. Below is the code.

Code for Sending

public static void main(String[] args) {
try{
     String host = "localhost";
    InetAddress addr = InetAddress.getByName(host);
    NewClass Details = new NewClass("Jay", 1);
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    ObjectOutputStream In = new ObjectOutputStream(buffer);
    In.writeObject(Details);
    In.flush();

    byte[] Buf= buffer.toByteArray();
    DatagramPacket packet = new DatagramPacket(Buf, Buf.length, addr, 7000);
    DatagramSocket socket = new DatagramSocket(4000);
    socket.send(packet);
            }catch (Exception error){
                    error.printStackTrace();
             }
     }

Code for receiving

 public static void main(String[] args) {

    try {
         DatagramSocket socket = new DatagramSocket(7000);
         socket.setSoTimeout(0);
           while (true) {
         byte[] buffer = new byte[1024];
         DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
         socket.receive(packet);
         String message = new String(buffer);
         System.out.println(message.trim());
            }
     } catch (Exception error) {
          error.printStackTrace();
         }
   }

This is what get printed out

enter image description here

Upvotes: 0

Views: 155

Answers (1)

DwB
DwB

Reputation: 38290

Use an ObjectInputStream. Check out the ObjectInputStream API Page.

Here is an Oracle Object Streams tutorial

Upvotes: 1

Related Questions