C#Flatbuffers字节数组

时间:2016-01-23 13:20:28

标签: c# serialization flatbuffers

我使用Flatbuffers序列化一些数据,然后通过TCP通过网络发送。我可以在客户端应用程序中对其进行反序列化,但是我发送的某些图像数据存在问题。

我的flatbuffers架构定义如下:

namespace datapacket;

table FlatDataPacket {
  id:string;
  framedata:[ubyte];
}

root_type FlatDataPacket;

我将数据反序列化如下:

ByteBuffer bb = new ByteBuffer(buffer); 
var flatDataPacket = FlatDataPacket.GetRootAsFlatDataPacket(bb);

现在,在flatDataPacket中,我的Id很好,但是我的imagedata长度是8,当我尝试转换为图片时,我得到一个例外:

for (int i = 0; i < flatDataPacket.FramedataLength; i++)
{
    incomingPacket.FrameBytes[i] = flatDataPacket.GetFramedata(i);
}

Image returnImage = Image.FromStream(new MemoryStream(incomingPacket.FrameBytes));//Throws exception

异常

  

发生了'System.ArgumentException'类型的异常   System.Drawing.dll但未在用户代码中处理

     

附加信息:参数无效。

我做错了什么?如果我这样做没有flatbuffers并使用JSON或只发送图像数据,图像就会被发送和反序列化。我使用的数据类型ubyte不正确吗?

0 个答案:

没有答案