首页 > 代码库 > Socket 之 传值方式

Socket 之 传值方式

一、传送 DataTable 和 DataSet

  1、发送端需序列化数据为二进制序列化格式

        public static byte[] GetBinaryFormatDataSet(DataSet ds)        {            byte[] binaryResult = null;            //创建内存流            using (MemoryStream memStream = new MemoryStream())            {                //产生二进制序列化格式                IFormatter formatter = new BinaryFormatter();                //指定DataSet串行化格式是二进制                ds.RemotingFormat = SerializationFormat.Binary;                //串行化到内存中                formatter.Serialize(memStream, ds);                //将DataSet转化成byte[]                binaryResult = memStream.ToArray();                //清空和释放内存流                memStream.Close();                memStream.Dispose();            }            return binaryResult;        }

  2、接收端需反序列化

        public static DataSet RetrieveDataSet(byte[] binaryData)        {            DataSet ds = null;            //创建内存流            using (MemoryStream memStream = new MemoryStream(binaryData))            {                memStream.Seek(0, SeekOrigin.Begin);                //产生二进制序列化格式                IFormatter formatter = new BinaryFormatter();                //反串行化到内存中                object obj = formatter.Deserialize(memStream);                //类型检验                if (obj is DataSet)                {                    ds = (DataSet)obj;                }            }            return ds;        }    

二、字符串

  1、发送端

string msg = "Message from server at " + DateTime.Now.ToString();byte[] buffer = Encoding.Unicode.GetBytes(msg);

  2、接收端

byte[] buffer = new byte[1024];string message = Encoding.Unicode.GetString(buffer, 0, length);

 

Socket 之 传值方式