onClientDataReceived(NetServerClient sender, byte[] data, int len) { onReceiveData?.Invoke(sender, data, len); Parser.CommandParser.parse(sender, data, len); }
startListening() { Action action = () => { try { listener?.Start(); while (listener != null) { TcpClient client = null; try { client = listener?.AcceptTcpClient(); } catch (Exception) { break; } NetServerClient netClient = new NetServerClient(client, onClientDataReceived, onClientDisconnected); clients.Add(netClient); } } finally { stop(); } }; Thread thread = new Thread(() => action.Invoke()); thread.Start(); }
onClientDisconnected(NetServerClient sender) { onClientDisconnect?.Invoke(sender); clients.RemoveAll(x => x == sender); }