protected internal void Listen() { try { _tcpListener = new TcpListener(IPAddress.Any, Port); _tcpListener.Start(); Task.Run(Sender); Started?.Invoke(); while (true) { TcpClient tcpClient = _tcpListener.AcceptTcpClient(); var ip = ((IPEndPoint)tcpClient.Client.RemoteEndPoint).Address.ToString(); if (!_permittedIp.Contains(ip)) { tcpClient.Close(); continue; } AdminPanelClient adminPanelClient = new AdminPanelClient(tcpClient, this); adminPanelClient.Token = PermittedToken; Thread clientThread = new Thread(adminPanelClient.Process); clientThread.Start(); } } catch (Exception ex) { Disconnect(); Disconnected?.Invoke(); } }
protected internal void RemoveConnection(string id) { AdminPanelClient adminPanelClient = _clients.FirstOrDefault(c => c.Id == id); if (adminPanelClient != null) { _clients.Remove(adminPanelClient); } }
protected internal void AddConnection(AdminPanelClient adminPanelClient) { _clients.Add(adminPanelClient); }