Android实时游戏字节消息传输

Android real time game byte message transfer

我开发自己的游戏,我使用 google 玩游戏服务来添加多人游戏功能。

我的数据消息传输有问题。默认情况下,消息对象是 byte[],并且它很容易传输对象,如 int、char,并将它们转换回来。

我的问题是传输我创建的对象。

工作示例:

发送数据时:

 int a = 0;
 mMsgBuf[0] = (byte) a;

恢复时:

int a = (int) mMsgBuf[0];

现在我想发送我的对象,但是我需要把他转成一个字节(不是字节数组),然后把他放在mMsgBuf[X]中。

我该怎么做?

编辑 将对象转换为byte[]很容易,但是消息传输一个byte[]。 我正在咨询如何使用我的 objectbyte[] 传输消息(正如我们所知 - byte[]),也许合并这两个数组?

如果您的自定义对象不可序列化,请使其可序列化。 Implement Serializable Interface。 然后在对象和字节数组之间转换以传输或接收数据。

对象到字节[]:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = new ObjectOutputStream(bos);
out.writeObject(yourObject);
byte[] yourBytes = bos.toByteArray();

byte[] 到对象:

ByteArrayIntputSream bis = new ByteArrayInputStream(yourBytes);
ObjectInput in = new ObjectInputStream(bis);
Object o = in.readObject();