示例#1
0
        /// <summary>
        /// Should be executed when bytes are recieved from the Server. You have to call it manually.
        /// </summary>
        /// <param name="bytes">Data recieved</param>
        public void OnBytesRecieved(byte[] bytes)
        {
            KNetUtils.PacketType     packetType;
            KNetUtils.PacketDataType dataType;
            short senderId;

            KNetUtils.DeconstructPacket(ref bytes, out packetType, out dataType, out senderId);

            MemoryStream    ms = new MemoryStream(bytes);
            BinaryFormatter bf = new BinaryFormatter();

            //KNetUtils.RecievePacket(packetType)
            switch (packetType)
            {
            case KNetUtils.PacketType.welcome:
                RecieveWelcomePacket(bytes);
                break;

            case KNetUtils.PacketType.bufferedObject:
                RecieveBufferedObject((KNetSerializedField)bf.Deserialize(ms));
                break;

            case KNetUtils.PacketType.rpc:
                KNetRpc rpc = (KNetRpc) new KNetRpc().KNetDeserialize(bytes);
                rpc.Execute();
                break;
            }
        }
示例#2
0
 /// <summary>
 /// Should be executed when bytes are recieved from any client. You have to call it manually.
 /// </summary>
 /// <param name="bytes">Data recieved</param>
 protected virtual void OnBytesRecieved(byte[] bytes)
 {
     KNetUtils.DeconstructPacket(ref bytes, out KNetUtils.PacketType packetType, out KNetUtils.PacketDataType dataType, out short senderId);
     //KNetUtils.RecievePacket(packetType)
     switch (packetType)
     {
     case KNetUtils.PacketType.rpc:
         KNetRpc rpc = (KNetRpc) new KNetRpc().KNetDeserialize(bytes);
         rpc.Execute();
         break;
     }
 }