Пример #1
0
        private void CNetwork_OnReceived(object sender, NetReceivedEventArgs <byte[]> e)
        {
            reader = new ArrayReader(e.Data, e.Data.Length);
            FROM_SERVER header = (FROM_SERVER)reader.ReadShort();

            switch (header)
            {
            case FROM_SERVER.LOGIN_STATUS:
                break;

            case FROM_SERVER.CLIENT_HELLO:
                var version = reader.ReadShort();
                var patch   = reader.ReadMapleString();

                if (version != (short)GameConstants.MAJOR_VERSION && patch != GameConstants.MINOR_VERSION)
                {
                    Disconnect(NetStoppedReason.Exception);
                    Environment.Exit(0);
                }
                break;

            default:
                Console.WriteLine("[Unhandled] Packet received: {0}", ByteArrayToString(e.Data));
                break;
            }
        }
Пример #2
0
 void client_OnReceived(object sender, NetReceivedEventArgs<byte[]> e)
 {
     if (e.Data[0] != 0 && e.Data.Length==20)
     {
         serialPort.SendByteArray(e.Data);
         cpt = (cpt + 1) % 50;
         if (cpt == 0)
             messages = new StringBuilder();
         string cw = Strings.ToHex(e.Data);
         cw = cw.Substring(6,32).Trim();
         if (cw.StartsWith("0000000000000000"))
             messages.Append(@"\viewkind4\uc1\pard\f0\fs16\fs20\cf1 scrambled channel\par");
         else
             messages.Append(string.Format(@"\viewkind4\uc1\pard\f0\fs16\fs20\cf3 {0}\par", cw));
         DisplayMessage(messages.ToString());
     }
 }
Пример #3
0
        static void client_OnReceived(object sender, NetReceivedEventArgs <byte[]> e)
        {
            try
            {
                while (true)
                {
                    if (ReceivedPacket.Data == null)
                    {
                        break;
                    }

                    System.Threading.Thread.Sleep(1);
                }
                BinaryReader DataPacket = new BinaryReader(new MemoryStream(Encode ? Compressor.Unpack(RC4_Server.Decode(e.Data, e.Data.Length)) : e.Data));

                ReceivedPacket.Data = DataPacket;

                ReceivedPacket.Opcode = Protocol.ReadCUInt32(ref ReceivedPacket.Data);
                ReceivedPacket.Length = Protocol.ReadCUInt32(ref ReceivedPacket.Data);

                if (debug_mode)
                {
                    Console.WriteLine("[S -> C]: 0x{0} Length: {1}", ReceivedPacket.Opcode.ToString("X2"), ReceivedPacket.Length);
                }

                if (ReceivedPacket.Opcode == 0x02)
                {
                    new System.Threading.Thread(delegate()
                    {
                        while (true)
                        {
                            System.Threading.Thread.Sleep(12000);
                            if (!Program.Client.IsConnected || !Encode)
                            {
                                break;
                            }

                            Client.Send(RC4_Client.Encode(new byte[] { 0x5A, 0x01, 0x5A }, 3));
                        }
                    }).Start();
                }

                if (ReceivedPacket.Opcode == 0x00)
                {
                    DataPacket.BaseStream.Position = ReceivedPacket.Data.BaseStream.Position;
                    while (DataPacket.PeekChar() != -1)
                    {
                        byte header = DataPacket.ReadByte();

                        uint sub_size = Protocol.ReadCUInt32(ref DataPacket);

                        ReceivedPacket.Data = new BinaryReader(new MemoryStream(DataPacket.ReadBytes((int)sub_size)));

                        if (sub_size < 3)
                        {
                            continue;
                        }

                        ReceivedPacket.Length = Protocol.ReadCUInt32(ref ReceivedPacket.Data);
                        ReceivedPacket.Opcode = ReceivedPacket.Data.ReadUInt16();

                        if (debug_mode)
                        {
                            Console.WriteLine("[S -> C] [GS]: 0x{0} Length: {1}", ReceivedPacket.Opcode.ToString("X2"), ReceivedPacket.Length);
                        }

                        ReceivedPacket.isSubPacket = true;
                        SendPacket.Data            = new List <byte>();

                        if (Functions[FunctionType.ReceivedSubPacket] != null)
                        {
                            Functions[FunctionType.ReceivedSubPacket].Call(new object[] { ReceivedPacket.Opcode, ReceivedPacket.Length });
                        }
                    }
                }
                else
                {
                    if (Functions[FunctionType.Received] != null)
                    {
                        Functions[FunctionType.Received].Call(new object[] { ReceivedPacket.Opcode, ReceivedPacket.Length });
                    }
                }
                ReceivedPacket.Opcode      = 0;
                ReceivedPacket.Length      = 0;
                ReceivedPacket.isSubPacket = false;
                ReceivedPacket.Data        = null;
                SendPacket.Data            = new List <byte>();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Пример #4
0
 void onClientReceiveData(object sender, NetReceivedEventArgs<byte[]> e)
 {
     onReceiveData(e.Data);
 }
Пример #5
0
 private static void Client_OnReceived(object sender, NetReceivedEventArgs <string> e)
 {
     Console.WriteLine("------> " + e.Data);
 }
Пример #6
0
 static void client_OnReceived(object sender, NetReceivedEventArgs<NetObject> e)
 {
     Console.WriteLine("Client received - Name: " + e.Data.Name + " Message: " + e.Data.Object.ToString());
 }