qq_43443118 2021-05-20 06:10 采纳率: 60%
浏览 64
已结题

懂C#同时懂Python的来,帮我把C#这两个函数转成Python版的

public static byte[] EncodeMsg(int opCode, int subCode, object value)
{
       MemoryStream ms = new MemoryStream();
       BinaryWriter bw = new BinaryWriter(ms);
       bw.Write(opCode);
       bw.Write(subCode);
       //如果不等于null  才需要把object 转换成字节数据 存起来
       if (value != null)
       {
           byte[] valueBytes = EncodeObj(value);
           bw.Write(valueBytes);
       }
       byte[] data = new byte[ms.Length];
       Buffer.BlockCopy(ms.GetBuffer(), 0, data, 0, (int)ms.Length);
       bw.Close();
       ms.Close();
       return data;
}


public static byte[] EncodePacket(byte[] data)
{
      //内存流对象
      using (MemoryStream ms = new MemoryStream())
      {
           using (BinaryWriter bw = new BinaryWriter(ms))
           {
                //先写入长度
                bw.Write(data.Length);
                //再写入数据
                bw.Write(data);

                byte[] byteArray = new byte[(int)ms.Length];
                Buffer.BlockCopy(ms.GetBuffer(), 0, byteArray, 0, (int)ms.Length);

                return byteArray;
           }
       }
}
  • 写回答

2条回答 默认 最新

  • benbenli 2021-05-20 06:49
    关注

    函数EncodeObj是怎么定义的呀?

    其实描述函数的功能重新写,比从C#改写更容易。

    评论

报告相同问题?

悬赏问题

  • ¥15 skynet MySQL ProtocolBuffers
  • ¥15 使用docker安装chemex后无法启动
  • ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊