Socket 中我想序列化List<object>,该如何实现?
object为实体类,实体类中有Image/byte[]类型的字段,该如何序列化?
每次都会遇到在“分析完成之前就遇到流结尾。”或者“二进制流“0”不包含有效的BinaryHeader。”这样的错误,请问大蟹们该如何解决该问题?
还有一个问题就是在网络卡的情况下得到的数据包和发送的不一致,该如何解决?
望高手帮忙!困惑了两天了,来回测试都得不到结果,谢谢各位!!!
object为实体类,实体类中有Image/byte[]类型的字段,该如何序列化?
每次都会遇到在“分析完成之前就遇到流结尾。”或者“二进制流“0”不包含有效的BinaryHeader。”这样的错误,请问大蟹们该如何解决该问题?
还有一个问题就是在网络卡的情况下得到的数据包和发送的不一致,该如何解决?
望高手帮忙!困惑了两天了,来回测试都得不到结果,谢谢各位!!!
这样的太笼统了,无法入手啊。
[Serializable]
public class ChatMessage
{
/// <summary>
/// ID
/// </summary>
public string ID { get; set; } /// <summary>
/// Sender
/// </summary>
public int Sender { get; set; } /// <summary>
/// Receiver
/// </summary>
public int Receiver { get; set; } /// <summary>
/// Message
/// </summary>
public byte[] Message { get; set; } /// <summary>
/// Datatime
/// </summary>
public DateTime Datatime { get; set; } /// <summary>
/// Flag
/// </summary>
public int Flag { get; set; }
}
此处Message 内容是RichTextBox富文本内容
2 搜一下粘包就知道了。
[Serializable]
public class TestClass : ISerializable
{
public string Name { get; set; }
public byte[] Data { get; set; }
public Image Image { get; set; } public TestClass()
{ } public TestClass(SerializationInfo info, StreamingContext context)
{
Name = info.GetString("Name");
Data = (byte[])info.GetValue("Data", typeof(byte[]));
using (var ms = new MemoryStream(Data))
Image = Image.FromStream(ms);
} [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter= true)]
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("Name", Name);
info.AddValue("Data", Data);
info.AddValue("Image", Image);
}
}//使用:
var test = new TestClass { Name = "test", Data = File.ReadAllBytes(@"D:\Test\1.jpg"), Image = Image.FromFile(@"D:\Test\1.jpg") };var bf = new BinaryFormatter();
var ms = new MemoryStream();
bf.Serialize(ms, test);ms.Position = 0;
var test1 = bf.Deserialize(ms) as TestClass;
http://www.cnblogs.com/wzd24/archive/2007/12/24/1011932.html
看了这位两篇文章,明白了一些,不过
Analyzer(info, buffer);//这个函数用来处理接收到的信息。
这里不晓得对方如何处理的?
恳请知晓的人帮忙解答一下,谢谢!