MemoryStream memStream = new MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
//自己定义的一个与服务器端进行沟通的累
ContactWithServer contactWithServer;
formatter.Serialize(memStream, user);
data = memStream.ToArray();
contactWithServer.sendData(data,data.Length);
Server端:
data = receiveUdpClient.Receive(ref ipep); //从客户端接收数据报
memStream = new MemoryStream(data);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = formatter.Deserialize(memStream);
User user = obj as User;
if(user == null)
MessageBox.Show("空对象");
分享到:
------解决方案-------------------- MessageBox.Show(obj.GetType().ToString()); //输出什么
User user = obj as User; ------解决方案-------------------- 服务器、客户端用的User要是同一个assembly中的,不能是两份User定义(即使定义成一样的) ------解决方案-------------------- 建立一个dll包含User
两端同时引用他 ------解决方案-------------------- 只要引用的是同一项目(比如类库项目)里的User类,应该是可以的。反序列化说白了就是传输xml并转化为实体对象的过程。 ------解决方案--------------------