Example #1
0
        public Client(LengthedSocket socket, Server server)
        {
            Socket = socket;
            Server = server;
            State  = ClientState.Connected;

            Timer = new Timer();

            Socket.OnError   += OnError;
            Socket.OnReceive += OnReceive;
            Socket.OnDecrypt += OnDecrypt;

            Socket.ReceiveAsync();

            var rnd = new Random();

            OneTimeKey = rnd.NextUInt();
            SessionId1 = rnd.NextUInt();
            SessionId2 = rnd.NextUInt();

            SendPacket(new ProtocolVersionPacket(OneTimeKey));

            // This is here (after ProtocolVersionPacket), so it won't get encrypted
            Socket.OnEncrypt += OnEncrypt;

            Timer.Add("timeout", Server.Config.AuthConfig.ClientTimeout * 1000, false, () =>
            {
                Logger.WriteLog(LogType.Network, "*** Client timed out! Ip: {0}", Socket.RemoteAddress);

                Close(true);
            });

            Logger.WriteLog(LogType.Network, "*** Client connected from {0}", Socket.RemoteAddress);
        }
Example #2
0
        public Client(LengthedSocket socket, Server server)
        {
            Socket      = socket;
            Server      = server;
            State       = ClientState.Connected;
            TimeoutTime = DateTime.Now.AddMinutes(Server.Config.AuthConfig.ClientTimeout);

            Socket.OnError   += OnError;
            Socket.OnReceive += OnReceive;
            Socket.OnDecrypt += OnDecrypt;

            Socket.ReceiveAsync();

            var rnd = new Random();

            OneTimeKey = rnd.NextUInt();
            SessionId1 = rnd.NextUInt();
            SessionId2 = rnd.NextUInt();

            // This packet must not be encrypted, so call Socket.Send instead of SendPacket
            SendPacket(new ProtocolVersionPacket(OneTimeKey));

            // This is here, so ProtocolVersionPacket won't get encrypted
            Socket.OnEncrypt += OnEncrypt;

            Logger.WriteLog(LogType.Network, "*** Client connected from {0}", Socket.RemoteAddress);
        }
Example #3
0
        public CommunicatorClient(LengthedSocket socket, Server server)
        {
            Server = server;
            Socket = socket;

            Socket.OnReceive += OnReceive;
            Socket.OnError   += OnError;

            Socket.ReceiveAsync();
        }
Example #4
0
        public QueueClient(QueueManager manager, LengthedSocket socket)
        {
            Manager           = manager;
            Socket            = socket;
            Socket.OnReceive += OnReceive;
            Socket.OnError   += OnError;

            Socket.ReceiveAsync();

            Socket.Send(new ServerKeyPacket
            {
                PublicKey = Manager.Config.PublicKey,
                Prime     = Manager.Config.Prime,
                Generator = Manager.Config.Generator
            });

            State = QueueState.Authenticating;
        }
Example #5
0
        public LoginClient(LoginManager manager, LengthedSocket socket)
        {
            Manager = manager;

            Socket             = socket;
            Socket.AutoReceive = false;
            Socket.OnReceive  += OnReceive;
            Socket.OnError    += OnError;

            DHKeyExchange.GeneratePrivateAndPublicA(PrivateKey, PublicKey);

            Socket.Send(new ServerKeyPacket
            {
                PublicKey = PublicKey,
                Prime     = DHKeyExchange.ConstantPrime,
                Generator = DHKeyExchange.ConstantGenerator
            });

            Socket.OnEncrypt += OnEncrypt;
            Socket.ReceiveAsync();
        }
Example #6
0
        public void RegisterAtServer(Server server, LengthedSocket socket, ClientCryptData cryptData)
        {
            Socket = socket;
            Data   = cryptData;
            Server = server;

            State = ClientState.Connected;

            Socket.OnError   += OnError;
            Socket.OnReceive += OnReceive;
            Socket.OnEncrypt += OnEncrypt;
            Socket.OnDecrypt += OnDecrypt;

            Socket.ReceiveAsync();

            for (var i = 0; i < 256; ++i)
            {
                SendSequence[i] = 1;
            }

            Logger.WriteLog(LogType.Network, "*** Client connected from {0}", Socket.RemoteAddress);
        }
Example #7
0
        public Client(LengthedSocket socket, ClientCryptData data, Server server)
        {
            _handler = new ClientPacketHandler(this);

            Socket = socket;
            Data   = data;
            Server = server;

            State = ClientState.Connected;

            Socket.OnError   += OnError;
            Socket.OnReceive += OnReceive;
            Socket.OnEncrypt += OnEncrypt;
            Socket.OnDecrypt += OnDecrypt;

            Socket.ReceiveAsync();

            for (var i = 0; i < 256; ++i)
            {
                SendSequence[i] = 1;
            }

            Logger.WriteLog(LogType.Network, "*** Client connected from {0}", Socket.RemoteAddress);
        }