我正在为 UDP 套接字通信实现发布者消费者模型。在该应用程序中,消费者将在订阅事件时创建 UDP 套接字。因此每个消费者将有不同的 IP 地址和端口用于数据发送。订阅事件的过程是动态的,这意味着我们可以添加订阅者运行时间。在我的应用程序中,发布者在一段时间后调用事件。假设在我的应用程序中目前我有 5 个订阅者,所以在发布者调用该方法后,应该使用他们的 IP 和端口将这些数据发送给 5 个不同的订阅者。由于我有在订阅者中发送数据的单一方法,我不知道如何同时将数据发送到不同的 IP 和端口?如何维护事件处理程序的状态?请帮我。
我在这里添加示例代码。
public class Program
{
public static EventHandler<ListEventArgs> DataSending;
static void Main(string[] args)
{
Class1.CreateNewEvent();
Class1.CreateNewEvent();
Class1.CreateNewEvent();
Class1.CreateNewEvent();
Class1.CreateNewEvent();
OnDataSending("Hello2");
Console.ReadLine();
}
static void OnDataSending(object data)
{
if (DataSending != null)
{
List<string> ss = new List<string>();
ss.Add(IPADDRESS);
ss.Add(PORT);
DataSending(data,new ListEventArgs(ss));
}
}
}
public static class Class1
{
public static void CreateNewEvent()
{
Program.DataSending += new EventHandler<ListEventArgs>(newEvent);
}
static void newEvent(object o, ListEventArgs e)
{
//Code for socket creation and sending data
}
}