/
Apalchev
/
SimpleLayer
Обзор
Документация
Войти
/
Apalchev
/
SimpleLayer
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Server/ServerCore.cs
62 строки
2 KB
milenium856
Fix some Bugs;
18 авг 2022, 16:00
18 авг 2022, 16:00
98b1ba2
Код
Авторство
О чём код?
using System.Net; using System.Net.Sockets; namespace Server; public class ServerCore { private static TcpListener tcpListener; // сервер для прослушивания private readonly List<ClientObject> clients = new(); // все подключения protected internal void AddConnection(ClientObject clientObject) { clients.Add(clientObject); } protected internal void RemoveConnection(string id) { var client = clients.FirstOrDefault(c => c.Id == id); if (client != null) clients.Remove(client); } protected internal void Listen() { try { tcpListener = new TcpListener(IPAddress.Any, 27015); tcpListener.Start(); Console.WriteLine("Сервер запущен. Ожидание подключений..."); while (true) { var tcpClient = tcpListener.AcceptTcpClient(); var clientObject = new ClientObject(tcpClient, this); var clientThread = new Thread(clientObject.Process); clientThread.Start(); } } catch (Exception ex) { Console.WriteLine(ex.Message); Disconnect(); } } protected internal void BroadcastMessage(byte[] data, string id) { foreach (var t in clients.Where(t => t.Id != id)) t.Stream.Write(data, 0, data.Length); } protected internal void Disconnect() { tcpListener.Stop(); foreach (var t in clients) t.Close(); Environment.Exit(0); } }