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();
我开发自己的游戏,我使用 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();