• 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);
  • 相关阅读:
    P3507 [POI2010]GRA-The Minima Game
    P2038 无线网络发射器选址
    2017.9.23清北第二场
    P3183 [HAOI2016]食物链
    2017.9.17校内noip模拟赛解题报告
    Day2代码
    P1328 生活大爆炸版石头剪刀布
    Fibinary Numbers
    Mac os 进行Android开发笔记(1)
    python中文注释及输出出错
  • 原文地址:https://www.cnblogs.com/xinaixia/p/5851826.html
Copyright © 2020-2023  润新知