首页 > 代码库 > 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 之 传值方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。