110,571
社区成员
发帖
与我相关
我的任务
分享
public static object Deserialize(byte[] data)
{
if (data.Length == 0) return null;
try
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
ms.Write(data, 0, data.Length);
ms.Position = 0;
object n = (object)bf.Deserialize(ms); //这行出现异常
ms.Close();
return n;
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
return null;
}
}
byte[] data = new byte[65535];
s.ReceiveBufferSize = 999999;
s.Receive(data); // s是socket
//object obj = super.Deserialize(data);
//object obj = super.DeSerializeBinary((new System.IO.MemoryStream(data)));
object obj = MyTool.SerializeHelper.Deserialize(data);
Type objType = obj.GetType();
if (objType == typeof(VideoModel.VideoOKMessage))
{
VideoModel.VideoOKMessage vok = (VideoModel.VideoOKMessage)obj;
if (list.Keys.Contains(vok.MName))
{
list.Remove(vok.MName);
list.Add(vok.MName, vok);
}
else
{
list.Add(vok.MName, vok);
}
s.Disconnect(true);
Console.WriteLine("shoudao");
}
private void SendVideo()
{
video.GrabImage(picMy.Handle, "C:\\send\\temp.Bmp");
//拍照
if (File.Exists("C:\\send\\temp.Bmp"))
{
comImg.Compress_Image("C:\\send\\temp.Bmp", "C:\\send\\my.jpg");
//压缩
if (File.Exists("C:\\send\\my.jpg"))
{
FileStream fs = File.OpenRead("C:\\send\\my.jpg");
long llen = fs.Length;
int len = Convert.ToInt32(llen);
byte[] imgData = new byte[len];
fs.Read(imgData, 0, len);
VideoModel.VideoOKMessage vok = new VideoModel.VideoOKMessage();
vok.MName = txtUserName.Text;
vok.ImgData = Encoding.Unicode.GetBytes("");
vok.ImgData = imgData;
MyTool.SuperSerializeHelper super = new MyTool.SuperSerializeHelper();
//byte[] data = super.SerializeBinary(vok).ToArray();
byte[] data = super.Serialize(vok);
TcpClient tc = new TcpClient(txtIP.Text, 2280);
tc.Client.Send(data);
//tc.Client.Disconnect(true);
}
}
}
MyTool.SuperSerializeHelper super = new MyTool.SuperSerializeHelper();
object obj = super.Deserialize(data);
if (obj == null)
{
continue;
}
public object Deserialize(byte[] data)
{
if (data.Length == 0) return null;
try
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream(data);
//ms.Write(data, 0, data.Length);
ms.Position = 0;
object n = (object)bf.Deserialize(ms);
ms.Close();
return n;
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.ToString());
return null;
}
}