private void AcceptClients() { if (ServerListener.Pending()) { TcpClient client = ServerListener.AcceptTcpClient(); ClientInst tmp = new ClientInst { Client = client, lastresponse = 0 }; clients.Add(tmp); // SendMessage(client, "Odpowiedź od serwera!"); Console.WriteLine("> " + "Connected " + client.Client.RemoteEndPoint.ToString()); int count = 0; foreach (ClientInst element in clients) { count++; Console.Write("[" + count + "]" + element.Client.Client.RemoteEndPoint.ToString() + " "); } Console.WriteLine(); } else { return; } }
void ReceiveMessage(TcpClient client, string message) { E_OnReceivedTCPMessage(client, message); if (message.Equals("ECHO")) { for (int i = 0; i < clients.Count; i++) { if (client.Equals(clients[i].Client)) { ClientInst tmp = clients[i]; tmp.lastresponse = 0; clients[i] = tmp; break; } } } }
private void EchoClients(Object source, ElapsedEventArgs e) { if (clients.Count == 0) { return; } for (int i = 0; i < clients.Count; i++) { ClientInst tmp = clients[i]; tmp.lastresponse += 2; clients[i] = tmp; if (tmp.lastresponse > 10) { DisconnectClient(i); return; } SendMessage(tmp.Client, "ECHO"); } }