public override void Start(int port) { Port = port; try { base.Start(port); } catch (Exception error) { throw error; } OnStarted?.BeginInvoke(result => { try { OnStarted.EndInvoke(result); } catch { } }, null); }
public void Start(IPAddress address, int port) { if (IsRunning) { return; } _isRunning = true; Address = address; Port = port; _serverSocket = new TcpListener(Address, Port.Value); _serverSocket.Start(); _thread = new Thread(Run); _thread.Start(); // Loop until worker thread activates. while (!_thread.IsAlive) { ; } OnStarted?.BeginInvoke(null, null); }