日期:2014-05-18  浏览次数:21199 次

在分析完成之前就遇到流结尾
我在做网络传输客户端反序列化时出现错误,错误提示:在分析完成之前就遇到流结尾
  序列化和反序列化的代码如下:期待ing...
// 二进制序列化  
  public static byte[] SerializeBinary(object obj) 
  { 
  if (obj == null) 
  return new byte[] { }; 

  BinaryFormatter se = new BinaryFormatter(); 
  MemoryStream memStream = new MemoryStream(); 
  se.Serialize(memStream, obj); 
  byte[] bobj = memStream.ToArray(); 
  memStream.Close(); 
  return bobj; 
  } 

  // 二进制反序列化  
  public static object DeserializeBinary(byte[] bobj) 
  { 
  if (bobj == null || bobj.Length == 0) 
  return new object[] { }; 

  MemoryStream memStream = new MemoryStream(bobj); 
  memStream.Position = 0; 
  BinaryFormatter de = new BinaryFormatter(); 
  object newobj = null; 
  memStream.Seek(0, SeekOrigin.Begin); 
  newobj = de.Deserialize(memStream); 
  memStream.Close(); 
  memStream.Dispose(); 
  return newobj; 
  }

------解决方案--------------------
这个问题有可能是粘包造成的!或者是你的程序处理逻辑有问题!自己好好检查一下自己的代码,应该和你的正反序列化没有关系!

------解决方案--------------------
帮顶,我也想知道。。。
------解决方案--------------------
我前两天用时也遇到这个错误提示,当时是因为反序列化时流中无数据!你打个断点看看你反序列化时流中的数据有没?
不过看着好像没问题!