private void _receiver_DataReceived(UDP_Receiver sender, string Data) { if (Data.StartsWith("!") && !_client_ips.Contains((object)Data.Substring(1))) { _client_ips.Add((object)Data.Substring(1)); UDP_Sender udpSender = new UDP_Sender(Data.Substring(1)); if (udpSender.IsConnected) { _connected_clients.Add((object)udpSender); } ClientConnected(this, Data.Substring(1)); } if (!Data.StartsWith("#")) { return; } _client_ips.Remove((object)Data.Substring(1)); _connected_clients.Clear(); for (int index = 0; index < _client_ips.Count; ++index) { UDP_Sender udpSender = new UDP_Sender(_client_ips[index].ToString()); if (udpSender.IsConnected) { _connected_clients.Add((object)udpSender); } } ClientDisconnected(this, Data.Substring(1)); }
public UDP_Server(string Sport, Form SourceForm) { _source_form = SourceForm; _sport = Sport; _receiver = new UDP_Receiver(8001); _receiver.DataReceived += new DataReceive(_receiver_DataReceived); _search_clients_thread = new Thread(new ThreadStart(_search_clients)); _search_clients_thread.IsBackground = true; _search_clients_thread.Start(); _send_information_thread = new Thread(new ThreadStart(_send_information)); _send_information_thread.IsBackground = true; _send_information_thread.Start(); }
public void Dispose() { _search_clients_thread.Abort(); _send_information_thread.Abort(); _receiver = (UDP_Receiver)null; }