クラスがあるとしましょう:
public class TestPackage implements Serializable
{
long cmd;
long args;
long flags;
}
シリアル化することで、これをbyte[]としてDatagramPacketに保存できます。次に、もう一方の端で、byte []を取得し、TestPackageの正確なインスタンスに逆シリアル化することができます。
(シリアル化/逆シリアル化は次のようになります)
public static byte[] serialize(Object object) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(object);
return out.toByteArray();
}
public static Object deserialize(byte[] datagramData) {
ByteArrayInputStream in = new ByteArrayInputStream(datagramData);
ObjectInputStream ois = new ObjectInputStream(in);
return ois.readObject();
}