111,129
社区成员
发帖
与我相关
我的任务
分享
interface IDataPacket
{
byte[] Pack();
void Unpack(byte[] buffer);
}
//所有实体继承于IDataPacket。
//假设
public class User : IDataPacket
{
public int UserId {get;set;}
public string UserName {get;set;}
public byte[] Pack()
{
byte[] ret=null;
using(System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
using(BinaryWriter wtr=new BinaryWriter(ms))
{
wtr.Write(UserId);
wtr.Write(UserName);
}
ms.Flush();
ret = ms.ToArray();
}
return ret;
}
public void Unpack(byte[] buffer)
{
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer))
{
using (BinaryReader rdr = new BinaryReader(ms))
{
UserId = rdr.ReadInt32();
UserName = rdr.ReadString();
}
}
}
}