public async Task Start(int port) { server = new TcpListener(ip, port); server.Start(); IsWorking = true; while (IsWorking) { try { var client = await server.AcceptTcpClientAsync(); var session = new ServerSession(client, processor); sessions.Add(session); ConnectionQuantityChanged?.Invoke(this, new EventArgs()); session.Start(); } catch { IsWorking = false; } } }
private void Session_ConnectionClosed(object sender, EventArgs e) { sessions.Remove(sender as ServerSession); ConnectionQuantityChanged?.Invoke(this, new EventArgs()); }