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); }
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); }
public CommunicatorClient(LengthedSocket socket, Server server) { Server = server; Socket = socket; Socket.OnReceive += OnReceive; Socket.OnError += OnError; Socket.ReceiveAsync(); }
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; }
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(); }
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); }
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); }