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(); }
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(); }
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(); }
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); }
/// <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; } } }
/// <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; } } }