public static void clientDCed(ClientHandler c) { clients.Remove(c); // form.label2.Text = "Connected:" + clients.Count; form.Invoke(new changeText(form.changeLabel), "Connected:" + clients.Count); stopRoutine(); }
public void start(object port) { listener = new TcpListener((int)port); listener.Start(); try { while (true) { if (Form1.stop) { Console.WriteLine("broke"); listener.Stop(); break; } TcpClient client = listener.AcceptTcpClient(); ClientHandler ch = new ClientHandler(client); Form1.clients.Add(ch); Form1.form.Invoke(new Form1.changeText(Form1.form.changeLabel), "Connected:" + Form1.clients.Count); ch.clientDC += Form1.clientDCed; Thread t = new Thread(new ThreadStart(ch.start)); t.Start(); } } catch (ThreadAbortException t) { //this shit isn't called because of the block of accepting tcp Console.WriteLine("got the abort"); listener.Stop(); } }