コード例 #1
0
        /// <summary>
        /// 转换头部
        /// </summary>
        /// <returns></returns>
        byte[] ConvertNetHeader(ClientHeader header)
        {
            List <byte> buffer = new List <byte>();
            Type        tp     = header.GetType();

            System.Reflection.FieldInfo[] infos = tp.GetFields();
            object[] obs = new object[infos.Length];
            for (int i = 0; i < infos.Length; i += 1)
            {
                //
                obs[i] = infos[i].GetValue(header as object);
                var bs = BitConverter.GetBytes((uint)obs[i]);
                buffer.AddRange(bs);
            }
            return(buffer.ToArray());
        }
コード例 #2
0
ファイル: TestMSGPack.cs プロジェクト: ZengHuiAn/redisProject
    // Start is called before the first frame update
    void Start()
    {
//        var obj = new object[]
//        {
//            new char[]
//            {
//                'a',
//                '增',
//                '怕',
//                '%'
//            },
//        };
        LogTool.Instance.ToStringAll(BitConverter.GetBytes((Int16)(50)));
        ClientHeader header = new ClientHeader();

        SerializableStructAttribute[] objects =
            (SerializableStructAttribute[])header.GetType()
            .GetCustomAttributes(typeof(SerializableStructAttribute), false);

        foreach (var VARIABLE in objects)
        {
            Debug.Log(VARIABLE);
        }
        EventManager.Instance.AddEventAction("EVENT.NET.MESSAGE", (msg) =>
        {
            SMessage m = msg as SMessage;
            print(m.Header.MessageID);
            EventManager.Instance.Call($"EVENT.NET.MESSAGE.{m.Header.MessageID}", 1.5);
        });
//
//        var bs = NetPackData.pack_all(obj);
////
////        LogTool.Instance.ToStringAll((byte)('a'));
////        LogTool.Instance.ToStringAll(BitConverter.GetBytes(false));
////        LogTool.Instance.ToStringAll(bs);
//
//        var obj_oo = NetUnPackData.unpack_all(bs);
//        LogTool.Instance.ToStringAll(obj_oo);
//        .Instance.LogBytes(bs);
    }