Esempio n. 1
0
 public GameClient(TcpClient tcpClient)
 {
     Log.Info($"connection from {tcpClient.Client.RemoteEndPoint}");
     Client  = tcpClient;
     Stream  = tcpClient.GetStream();
     Address = tcpClient.Client.RemoteEndPoint;
     _crypt  = new GameCrypt();
     new System.Threading.Thread(Read).Start();
 }
Esempio n. 2
0
 public GameClient(TcpClient tcpClient)
 {
     Console.WriteLine("connection from " + tcpClient.Client.RemoteEndPoint);
     _client  = tcpClient;
     _stream  = tcpClient.GetStream();
     _address = tcpClient.Client.RemoteEndPoint;
     _crypt   = new GameCrypt();
     new System.Threading.Thread(read).Start();
 }
Esempio n. 3
0
 public GameClient(IPlayerService playerService, ClientManager clientManager, TcpClient tcpClient, GamePacketHandler gamePacketHandler)
 {
     _playerService = playerService;
     Log.Info($"Connection from {tcpClient.Client.RemoteEndPoint}");
     Client             = tcpClient;
     _gamePacketHandler = gamePacketHandler;
     _clientManager     = clientManager;
     Stream             = tcpClient.GetStream();
     Address            = tcpClient.Client.RemoteEndPoint;
     _crypt             = new GameCrypt();
     new System.Threading.Thread(Read).Start();
 }
Esempio n. 4
0
        public GameClient(ClientManager clientManager, TcpClient tcpClient, GamePacketHandler gamePacketHandler)
        {
            Log.Info($"Connection from {tcpClient.Client.RemoteEndPoint}");

            Address           = tcpClient.Client.RemoteEndPoint;
            Client            = tcpClient;
            Stream            = tcpClient.GetStream();
            AccountCharacters = new List <L2Player>();

            _crypt = new GameCrypt();
            _characterCrudService = GameServer.ServiceProvider.GetService <ICrudService <CharacterContract> >();
            _characterService     = GameServer.ServiceProvider.GetService <ICharacterService>();
            _gamePacketHandler    = gamePacketHandler;
            _clientManager        = clientManager;

            Task.Factory.StartNew(Read);
        }
Esempio n. 5
0
        /// <summary>
        /// Handles incoming packet.
        /// </summary>
        /// <param name="packet">Incoming packet.</param>
        protected override void Handle( Packet packet )
        {
            Logger.WriteLine(Source.OuterNetwork, "Received: {0}", packet.ToString());

            //Logger.WriteLine(Source.Debug, "packet.FirstOpcode = {0}", packet.FirstOpcode);

            switch ( State )
            {
                case UserConnectionState.Disconnected:
                    throw new InvalidOperationException();

                case UserConnectionState.Connected:
                    {
                        switch ( packet.FirstOpcode )
                        {
                            case 0x0e: // protocol
                                {
                                    int revision = packet.ReadInt();

                                    //Logger.WriteLine(Source.Debug, "Protocol Revision: {0}", revision);

                                    if ( revision == -2 )
                                    {
                                        CloseConnection();
                                        // remove from active connections list
                                    }

                                    if ( revision < Settings.Default.WorldMinProtoRev || revision > Settings.Default.WorldMaxProtoRev )
                                    {
                                        CloseConnection();
                                        // remove from active connections, log
                                    }

                                    byte[] keyIN = BlowFishKeygen.GetNext();
                                    //byte[] keyOUT = BlowFishKeygen.GetNext();

                                    m_Crypt = new GameCrypt();
                                    m_Crypt.setKey(keyIN);

                                    SendNoCrypt(KeyPacket.Create(keyIN));

                                    BeginReceive();

                                    break;
                                }
                            case 0x2b: // login
                                {
                                    new AuthLogin(packet).RunImpl();
                                    break;
                                }
                            default:
                                {
                                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                                    break;
                                }
                        }

                        return;
                    }

                case UserConnectionState.Authed:
                    {
                        switch (packet.FirstOpcode)
                        {
                            default:
                                {
                                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                                    break;
                                }
                        }
                        return;
                    }
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Handles incoming packet.
        /// </summary>
        /// <param name="packet">Incoming packet.</param>
        protected override void Handle(Packet packet)
        {
            Logger.WriteLine(Source.OuterNetwork, "Received: {0}", packet.ToString());

            //Logger.WriteLine(Source.Debug, "packet.FirstOpcode = {0}", packet.FirstOpcode);

            switch (State)
            {
            case UserConnectionState.Disconnected:
                throw new InvalidOperationException();

            case UserConnectionState.Connected:
            {
                switch (packet.FirstOpcode)
                {
                case 0x0e:             // protocol
                {
                    int revision = packet.ReadInt();

                    //Logger.WriteLine(Source.Debug, "Protocol Revision: {0}", revision);

                    if (revision == -2)
                    {
                        CloseConnection();
                        // remove from active connections list
                    }

                    if (revision < Settings.Default.WorldMinProtoRev || revision > Settings.Default.WorldMaxProtoRev)
                    {
                        CloseConnection();
                        // remove from active connections, log
                    }

                    byte[] keyIN = BlowFishKeygen.GetNext();
                    //byte[] keyOUT = BlowFishKeygen.GetNext();

                    m_Crypt = new GameCrypt();
                    m_Crypt.setKey(keyIN);

                    SendNoCrypt(KeyPacket.Create(keyIN));

                    BeginReceive();

                    break;
                }

                case 0x2b:             // login
                {
                    new AuthLogin(packet).RunImpl();
                    break;
                }

                default:
                {
                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                    break;
                }
                }

                return;
            }

            case UserConnectionState.Authed:
            {
                switch (packet.FirstOpcode)
                {
                default:
                {
                    Logger.WriteLine(Source.OuterNetwork, "Unknown packet on state {0}: Opcode = {1}", State, packet.FirstOpcode);
                    break;
                }
                }
                return;
            }
            }
        }