我想请问一下:
如果服务器和客户端进行Socket通信
客户端和服务端定义相同的类如
Class person
{
   private String name;
   private Stirng sex;
   private int age;
   ......
}
那么客户端Person类声明的对象p,是否能够发送到服务端,并且用服务端的Person声明的对象来接收,
如果可以,如何实现?
如果不行,用什么方法可以达到相同效果?
(如果能有简单的代码说明,求之不得!)
谢谢!

解决方案 »

  1.   

    序列化  把你这个类编译成一个DLL  两边都引用这个DLL 然后通过
            public static byte[] ObjectToBytes(object p_Object)
            {
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter _Formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                MemoryStream _Memory = new MemoryStream();
                _Formatter.Serialize(_Memory, p_Object);
                return _Memory.GetBuffer();
            }        public static object BytesToObject(byte[] p_ObjectBytes)
            {
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter _Formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                MemoryStream _MemStr = new MemoryStream(p_ObjectBytes);
                return _Formatter.Deserialize(_MemStr);
            }
    来转换也可以序列化成XML另外你也可以使用结构体来传递.
      

  2.   

    可以,实现步骤:
    (1)客户端Person对象p进行序列化->字节流
    (2)将字节流通过Socket发送到服务器
    (3)服务器将字节流反序列化->Person对象p
      

  3.   

    一般Socket通讯只是传送文件流或者是XML内容,如果需要传送一个对象,还是使用WCF来得容易,各方面都很规范。
      

  4.   

    Socket通讯只是传送文件流或者是XML内容,需要序列化你的person
      

  5.   


    byte流:可加密
    xml:明文