服务器与客户端的通信,相互间需要发送10多种不同的消息。我想把每种消息定义为结构或类。能将结构和类写入socket,并能在另一端正确地取得,并能正确判断是哪个消息吗?想过通过System.XML.Serialize.XMLSerialize类来序列化类,但这样发过去后另一端无法判断这个消息具体是哪个消息,也就无法正确反序列化。期盼各位指教,不胜感激
解决方案 »
- .NET2003下画图用什么工具或组件好,不要有版权问题
- 无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型(异步插件协议中使用线程)
- 将c#.dll文件转换成.tlb文件是出错
- 关于遍历的问题!
- 如何在Repeater控件中加CHECKBOX列???????高分相送
- 关于"groupbox"控件的问题
- c# 一个继承的问题
- 。NET 里 reporting services 报表问题(急)
- 我以前做过C++,所以C++的书很多,现在做C#,请问我可以看C++的书做C#马?
- C#之父Anders Hejlsberg撰写的C#语言规范?
- 我只是想执行一条SQL语句
- 请问visual studio 2003里的项目要怎么删?谢谢!
楼上请指教,能提供代码参考吗?
/// 从二进制数组反序列化得到对象
/// </summary>
/// <param name="buf">字节数组</param>
/// <returns>得到的对象</returns>
public static object DeserializeBinary(byte[] buf)
{
try
{
System.IO.MemoryStream memStream = new MemoryStream(buf);
memStream.Position=0;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter deserializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object newobj = deserializer.Deserialize(memStream);
memStream.Close();
return newobj;
}
catch
{
return null;
}
}/// <summary>
/// 序列化为二进制字节数组
/// </summary>
/// <param name="request">要序列化的对象</param>
/// <returns>字节数组</returns>
public static byte[] SerializeBinary(object request)
{
try
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
serializer.Serialize(memStream, request);
return memStream.GetBuffer();
}
catch
{
return null;
}
}#endregion