public void DoAcceptTcpClientCallback(IAsyncResult ar) { TcpListener listener = (TcpListener)ar.AsyncState; TcpClient clientSocket = listener.EndAcceptTcpClient(ar); var client = new ClientHandler(); client.startClient(clientSocket, clients.Count, clients, labelOnlineClients, labelOfflineClients, listViewMachinesAndTasksHandler, executedTasksHandlers, labelAllClients, console, this); clients.Add(client); Application.Current.Dispatcher.Invoke(() => { labelOnlineClients.Content = "Online: " + clients.Count; labelOfflineClients.Content = "Offline: " + (clientsAll - clients.Count); }); listener.BeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpClientCallback), listener); }
public void Listen() { serverSocket = new TcpListener(IPAddress.Any, 65452); clientSocket = default(TcpClient); clients = new List <ClientHandler>(); listViewMachinesAndTasksHandler.clients = clients; Application.Current.Dispatcher.Invoke(() => { labelOnlineClients.Content = "Online: " + clients.Count; labelOfflineClients.Content = "Offline: " + (clientsAll - clients.Count); }); try { serverSocket.Start(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); throw; } while (true) { try { clientSocket = serverSocket.AcceptTcpClient(); var client = new ClientHandler(); client.startClient(clientSocket, clients.Count, listBox1, clients, labelOnlineClients, labelOfflineClients, listViewMachinesAndTasksHandler, executedTasksHandlers, labelAllClients); clients.Add(client); Application.Current.Dispatcher.Invoke(() => { labelOnlineClients.Content = "Online: " + clients.Count; labelOfflineClients.Content = "Offline: " + (clientsAll - clients.Count); }); } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw; } } }