UdpClient.Receive(ref IpEndpoint)从UdpClient.Send(Data,Data.Length,newIpEndpoint)接收自己发送的数据包

时间:2015-02-10 07:20:18

标签: c# sockets udp tcp-ip udpclient

我在接收来自UdpClient套接字的数据包时遇到了麻烦。

问题:

  

我的套接字正在接收以广播类型发送的数据包,但它也接收它自己发送的数据包。如何阻止这个?

我已启用广播以广播方式发送消息并禁用MulticastLoopback但问题仍然存在。

以下是我的代码段的样子:

UdpClient = new System.Net.Sockets.UdpClient();
UdpIpEp = new IPEndPoint(IPAddress.Parse("10.9.210.110"), 15000);
newIpendpoint = new IPEndPoint(IPAddress.Broadcast, 15000);

UdpClient.EnableBroadcast = true;
UdpClient.MulticastLoopback = false;
UdpClient.Client.Bind(UdpIpEp);

// for sending
UdpClient.Send(Data, Data.Length, newIpendpoint);

// for receiving
if (UdpClient.Available > 0) {
  Byte[] TempByteArray = UdpClient.Receive(ref UdpIpEp);
}

现在, TempByteArray 中收到的数据与应用程序发送的数据相同。我做错了什么以及如何阻止它?

0 个答案:

没有答案