Example #1
0
    void onPacketCallback(Packet packet)
    {
        TestProto msg = packet.ToOBJ(typeof(TestProto)) as TestProto;

        Debug.LogError("cs msg:" + msg.a + "," + msg.b + "," + msg.c + "," + GHelper.toString <int>(msg.d.ToArray()));
        packet.mMetaPacket = null;//清除缓存
        LuaObject lo = packet.ToLua("TestProto") as LuaObject;

        Debug.LogError("lua msg:" + lo.value <string>("a") + "," + lo.value <int>("b") + "," + lo.value <int>("c") + "," + GHelper.toString <int>(lo.value <int[]>("d")));
    }
Example #2
0
        private void OnTestProtoCallBack(Role role, byte[] content)
        {
            TestProto proto = TestProto.GetProto(content);

            Console.WriteLine(string.Format("Id:{0}  Name{1}", proto.Id, proto.Name));

            proto.Id   = 1002;
            proto.Name = "杨明";
            role.Client_Socket.SendMsg(proto.ToArray());
        }
Example #3
0
    public static TestProto GetProto(byte[] buffer)
    {
        TestProto proto = new TestProto();

        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            proto.Id   = ms.ReadInt();
            proto.Name = ms.ReadUTF8String();
        }
        return(proto);
    }
Example #4
0
    /// <summary>
    /// 委托回调
    /// </summary>
    /// <param name="protoCode"></param>
    /// <param name="buffer"></param>
    private void OnReceiveProtoCallBack(ushort protoCode, byte[] buffer)
    {
        Debug.Log("protoCode=" + protoCode);



        TestProto tmpprot = TestProto.GetProto(buffer);

        Debug.Log("tmpprotID=" + tmpprot.Id);
        Debug.Log("tmpprotName=" + tmpprot.Name);
    }
Example #5
0
 public void TestDynamic()
 {
     var myVal = new TestProto { Value = true };
     byte[] serialized;
     using (var ms = new MemoryStream())
     {
         Serializer.Serialize(ms, myVal);
         serialized = ms.ToArray();
     }
     Assert.That(serialized, Is.Not.Null);
 }
        private void OnRequestTest(Role role, byte[] buffer)
        {
            Console.WriteLine("客户端请求测试协议 ");

            TestProto proto = new TestProto();

            proto.Id    = 100;
            proto.Name  = "Response";
            proto.Price = 1200;
            proto.Type  = 2;

            role.Client_Socket.SendMsg(proto.ToArray());
        }
Example #7
0
        public void TestDynamic()
        {
            var myVal = new TestProto {
                Value = true
            };

            byte[] serialized;
            using (var ms = new MemoryStream())
            {
                Serializer.Serialize(ms, myVal);
                serialized = ms.ToArray();
            }
            Assert.That(serialized, Is.Not.Null);
        }
Example #8
0
 public void TestDynamic()
 {
     Program.ExpectFailure<Exception>(() =>
     {
         var myVal = new TestProto { Value = true };
         byte[] serialized;
         using (var ms = new MemoryStream())
         {
             Serializer.Serialize(ms, myVal);
             serialized = ms.ToArray();
         }
         Assert.IsNotNull(serialized);
     }, "Dynamic type is not a contract-type: Boolean");
 }
Example #9
0
 public void TestDynamic()
 {
     Program.ExpectFailure <InvalidOperationException>(() =>
     {
         var myVal = new TestProto {
             Value = true
         };
         byte[] serialized;
         using (var ms = new MemoryStream())
         {
             Serializer.Serialize(ms, myVal);
             serialized = ms.ToArray();
         }
         Assert.NotNull(serialized);
     }, "Dynamic type is not a contract-type: Boolean");
 }
Example #10
0
    void Update()
    {
        if (Input.GetKeyUp(KeyCode.A))
        {
            UserDataProto ll = new UserDataProto();

            SuperSocket.Instance.SendData <UserDataResultProto> (ll, GetData);
        }
        else if (Input.GetKeyUp(KeyCode.C))
        {
            TestProto proto = new TestProto();

            proto.data = "lklk";

            SuperSocket.Instance.SendData <TestProto2>(proto, GetTest);
        }
    }
Example #11
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            TestProto proto = new TestProto();
            proto.Id    = 100;
            proto.Name  = "测试协议";
            proto.Price = 66.6f;
            proto.Type  = 80;

            //发送
            NetWorkSocket.Instance.SendMsg(proto.ToArray());
        }
        if (Input.GetKeyDown(KeyCode.B))
        {
            Mail_Get_DetailProto proto = new Mail_Get_DetailProto();
            NetWorkSocket.Instance.SendMsg(proto.ToArray());
        }
    }
Example #12
0
        public static void Test()
        {
            TestProto testProto = new TestProto();

            testProto.Account    = "aaa";
            testProto.Password   = "******";
            testProto.Dict["aa"] = "cc";
            testProto.Adresses.Add("abc");
            testProto.Adresses.Add("efg");
            testProto.TestSubProto         = new TestSubProto();
            testProto.TestSubProto.Account = "uiop";
            //      LogCat.log(testProto);
            //序列化
            byte[] data_bytes = testProto.Serialize();

            //反序列化
            TestProto obj = data_bytes.Deserialize <TestProto>();

            LogCat.log(obj.Dict["aa"]);
            LogCat.log(obj.TestSubProto.Account);
        }
Example #13
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.A))
        {
            TestProto proto = new TestProto();
            proto.Id    = 100;
            proto.Name  = "测试协议";
            proto.Type  = 80;
            proto.Price = 99.5f;

            NetWorkSocket.Instance.SendMsg(proto.ToArray());
        }
        //if (Input.GetKeyDown(KeyCode.S))
        //{
        //    Send("你好,S");
        //}
        //if (Input.GetKeyDown(KeyCode.D))
        //{
        //    for (int i = 0; i < 30; i++)
        //    {
        //        Send("你好循环...." + i);
        //    }
        //}
    }
Example #14
0
    void OnGUI()
    {
        if (GUI.Button(new Rect(0, 0, 100, 30), "建立连接"))
        {
            mClient = NetworkMgr.single.CreateClient(ClientType.Tcp, "") as Arale.Engine.TcpClient;
            mClient.Connect("127.0.0.1", null, 9527);
        }
        if (GUI.Button(new Rect(0, 30, 100, 30), "断开连接"))
        {
            mClient.Close();
        }
        if (GUI.Button(new Rect(0, 60, 100, 30), "发送数据"))
        {
            TestProto msg = new TestProto();
            msg.a = "arale";
            msg.b = 1234;
            msg.c = 5678;
            msg.d.AddRange(new int[] { 1, 2, 3 });
            mClient.send(1, msg);
        }
        if (GUI.Button(new Rect(0, 90, 100, 30), "LuaProto编解码测试"))
        {        //根据proto源码实现
            TestProto msg = new TestProto();
            msg.a = "arale";
            msg.b = 1234;
            msg.c = 5678;
            msg.d.AddRange(new int[] { 1, 2, 3 });
            Packet pk = Packet.CreatePacket(1, msg);
            pk  = Packet.CreatePacket(pk.mNetData);
            msg = pk.ToOBJ(typeof(TestProto)) as TestProto;
            Debug.LogError("msg:" + msg.a + "," + msg.b + "," + msg.c + "," + GHelper.toString <int>(msg.d.ToArray()));
        }
        if (GUI.Button(new Rect(0, 120, 100, 30), "LuaPB编解码测试"))
        {//网上通用方式
            LuaRoot.single.mL.DoString(@"
                local rapidjson = require 'rapidjson' 
                local t = rapidjson.decode('{""a"":123}')
                print(t.a)
                t.a = 456
                local s = rapidjson.encode(t)
                print('json', s)
                ------------------------------------
                local lpeg = require 'lpeg'
                print(lpeg.match(lpeg.R '09','123'))
                ------------------------------------
                local pb = require 'pb'
                local protoc = require 'common/protoc'

                assert(protoc:load [[
                message Phone {
                    optional string name        = 1;
                    optional int64  phonenumber = 2;
                }
                message Person {
                    optional string name     = 1;
                    optional int32  age      = 2;
                    optional string address  = 3;
                    repeated Phone  contacts = 4;
                } ]])

                local data = {
                name = 'ilse',
                age  = 18,
                    contacts = {
                        { name = 'alice', phonenumber = 12312341234 },
                        { name = 'bob',   phonenumber = 45645674567 }
                    }
                }

                local bytes = assert(pb.encode('Person', data))
                print(pb.tohex(bytes))
                local data2 = assert(pb.decode('Person', bytes))
                print(data2.name)
                print(data2.age)
                print(data2.address)
                print(data2.contacts[1].name)
                print(data2.contacts[1].phonenumber)
                print(data2.contacts[2].name)
                print(data2.contacts[2].phonenumber)
            ");
        }
    }