//This is called when a message is received (before any events are called) private void OnBroadcastMessage(IAsyncResult res) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, port); byte[] received = client.EndReceive(res, ref RemoteIpEndPoint); // Begin receiving A$AP client.BeginReceive(new AsyncCallback(OnBroadcastMessage), null); //Process the message if (!RemoteIpEndPoint.Address.Equals(selfIP)) // message is from someone else { NewBroadcastEventArgs args = new NewBroadcastEventArgs(); args.message = Encoding.UTF8.GetString(received); NewBroadcast(this, args); // raise event } }
// EventThing protected virtual void OnNewBroadcast(NewBroadcastEventArgs e) { EventHandler <NewBroadcastEventArgs> handler = NewBroadcast; handler?.Invoke(this, e); }
private static void Broadcast_NewBroadcast(object sender, NewBroadcastEventArgs e) { Console.WriteLine($"New Message: {e.message}"); }