class Program
{
static void Main(string[] args)
{
// Receiver
MutualUdpClient udpClientA = new MutualUdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234));
MutualUdpClient udpClientB = new MutualUdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234));
// Transmiter
UdpClient transmiter = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9999));
// Send
transmiter.Send(new byte[] { 55 }, 1, new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234));
// Receive
byte[] packet = null;
IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, IPEndPoint.MinPort);
packet = udpClientA.Receive(ref remoteEndPoint);
Console.WriteLine(string.Format("UdpClientA Receive:{0}", packet[0]));
packet = udpClientB.Receive(ref remoteEndPoint);
Console.WriteLine(string.Format("UdpClientB Receive:{0}", packet[0]));
// End
Console.ReadLine();
// Close
transmiter.Close();
udpClientB.Close();
udpClientA.Close();
}
}
上列程序代码示范如何在系统中使用MutualUdpClient对象,在范例中可以看到程序代码中直接建立了两个相同UDP端点的MutualUdpClient对象,并且可以正常的执行不会出现SocketException的例外通知。而远程设备transmiter所传送的数据封包,在被UdpClientA透过Receive方法接收之后,UdpClientB依然可以透过Receive方法接收同一个资料,这也就验证了MutualUdpClient对象提供了共享通讯联机、共享数据封包的功能。

原始码下载: MutualUdpClientSample_jb51net.rar








