void Run() { ClientServer curCS; running = true; serverSocket = new TcpListener(localEP); serverSocket.Start(); while (running) { while (running && !serverSocket.Pending()) { Thread.Sleep(100); } if (!running) { break; } Console.Error.WriteLine("New client"); curCS = new ClientServer(serverSocket.AcceptTcpClient()); curCS.ClientTerminated += new ClientServer.ClientTerminatedHandler(curCS_ClientTerminated); pool.Add(curCS); curCS.Start(); } serverSocket.Stop(); for (int i = pool.Count - 1; i >= 0; i--) { pool[i].Stop(); } }
void Run() { ClientServer curCS; running = true; serverSocket = new TcpListener(localEP); serverSocket.Start(); while (running) { while (running && !serverSocket.Pending()) { Thread.Sleep(100); } if (!running) break; Console.Error.WriteLine("New client"); curCS = new ClientServer(serverSocket.AcceptTcpClient()); curCS.ClientTerminated += new ClientServer.ClientTerminatedHandler(curCS_ClientTerminated); pool.Add(curCS); curCS.Start(); } serverSocket.Stop(); for (int i = pool.Count - 1; i >= 0; i--) { pool[i].Stop(); } }
void curCS_ClientTerminated(ClientServer cs) { //TODO }