C# 异步套接字序列化&;反序列化

C# 异步套接字序列化&;反序列化,c#,C#,我在从客户机接收用Java编写的对象时遇到问题。 我100%确定我的客户代码,这是好的。 但是当我试图从我的C#异步服务器接收数据时,上面出现了几个错误 我想这是因为我真的不知道如何得到它的小溪 int iRx = socketData.m_currentSocket.EndReceive(asyn); byte[] receivedData = socketData.dataBuffer; MemoryStream memStream = new MemoryStream(); BinaryF

我在从客户机接收用Java编写的对象时遇到问题。 我100%确定我的客户代码,这是好的。 但是当我试图从我的C#异步服务器接收数据时,上面出现了几个错误 我想这是因为我真的不知道如何得到它的小溪

int iRx = socketData.m_currentSocket.EndReceive(asyn);
byte[] receivedData = socketData.dataBuffer;
MemoryStream memStream = new MemoryStream();
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(receivedData, 0, receivedData.Length);
memStream.Seek(0, SeekOrigin.Begin);
UserData usdata = (UserData)binForm.Deserialize(memStream);

Java序列化的内容将与内置的.NET序列化程序完全不同。您必须知道流的格式,并且每次手动反序列化一个字节

例如,如果在.NET中序列化
int
,它将序列化7位编码值。如果使用
BinaryFormatter
序列化自定义类型,它会在流中包含类型的强名称——显然不是Java所能做的


您可能需要考虑在java和.NET中工作的第三方序列化程序/反序列化程序。例如

您得到的确切错误是什么?什么是完全的异常?我将查看此任务的协议缓冲区。可在Java和.NET中获得。