一、传送 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);
原文:http://www.cnblogs.com/xinaixia/p/5851826.html