zoukankan      html  css  js  c++  java
  • c# 字节数组网路传输转义

            /// <summary>
            /// 获取转义数据
            /// 转义规则:0x9e<——>0x9d后紧跟一个0x02;0x9d<——>0x9d后紧跟一个0x01。
            /// </summary>
            /// <param name="buffer">原始数据</param>
            /// <returns>转义数据</returns>
            private byte[] getTransferredMeaning(byte[] buffer)
            {
                try
                {
                    List<byte> dataList = buffer.ToList();
                    for (int i = 1; i < dataList.Count-1; i++)
                    {
                        if (dataList[i] == 0x9e)
                        {
                            dataList[i] = 0x9d;
                            dataList.Insert(i + 1, 0x02);
                        }
                        else if (dataList[i] == 0x9d)
                        {
                            dataList.Insert(i + 1, 0x01);
                        }
                    }
                    return dataList.ToArray();
                }
                catch
                {
                    return buffer;
                }
            }
            /// <summary>
            /// 反转义
            /// 转义规则:0x9e<——>0x9d后紧跟一个0x02;0x9d<——>0x9d后紧跟一个0x01。
            /// </summary>
            /// <param name="buffer">原始数据</param>
            /// <returns>反转义数据</returns>
            private byte[] getOppositeMeaning(byte[] buffer)
            {
                try
                {
                    List<byte> dataList = buffer.ToList();
                    for (int i = 1; i < dataList.Count - 1; i++)
                    {
                        if (dataList[i] == 0x9d && dataList[i + 1] == 0x02)
                        {
                            dataList[i] = 0x9e;
                            dataList.RemoveAt(i + 1);
                        }
                        else if (dataList[i] == 0x9d && dataList[i + 1] == 0x01)
                        {
                            dataList.RemoveAt(i + 1);
                        }
                    }
                    return dataList.ToArray();
                }
                catch
                {
                    return buffer;
                }
            }
    

      

  • 相关阅读:
    重载小于号
    无聊的会议
    程序内存和时间
    对拍
    读入和输出优化
    codevs 3269 混合背包
    清北第三套题
    codevs 2188 最长上升子序列
    清北第二套题
    [COGS896] 圈奶牛
  • 原文地址:https://www.cnblogs.com/webttt/p/12855007.html
Copyright © 2011-2022 走看看