/// <inheritdoc/> public void Start(BaseClientRepository clientRepository, int maxClients, int port = Constants.DefaultPort) { ClientRepository = clientRepository; MaxClients = maxClients; Port = port; if (_packetHandler.Get(0) == null) { _packetHandler.AddPacketHandler(0, clientRepository.HandleWelcomeReceived); } InitServerData(); _tcpListener = new TcpListener(IPAddress.Any, Port); _tcpListener.Start(); _tcpListener.BeginAcceptTcpClient(new AsyncCallback(TCPConnectCallback), null); UdpListener = new UdpClient(Port); UdpListener.BeginReceive(UDPReceiveCallback, null); IsRunning = true; OnServerStarted?.Invoke(this, new EventArgs()); }
/// <inheritdoc/> public void AddPacketHandler(int id, PacketHandlerDelegate handler) { _packetHandler.AddPacketHandler(id, handler); }