gpt4 book ai didi

c# - 发送UDP广播,接收多条消息

转载 作者:IT王子 更新时间:2023-10-29 04:00:11 26 4
gpt4 key购买 nike

我有 2 个程序,1 个用于发送 UDP 广播消息,1 个用于监听此广播。我的问题是,有时当我发送广播时,接收者会收到 2 条消息。为什么?

收件人代码:

public class Receiver {
private readonly UdpClient udp = new UdpClient(15000);
private void StartListening()
{
this.udp.BeginReceive(Receive, new object());
}
private void Receive(IAsyncResult ar)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Any, 15000);
byte[] bytes = udp.EndReceive(ar, ref ip);
string message = Encoding.ASCII.GetString(bytes);
StartListening();
}
}

发件人代码:

public class Sender {
public void Send() {
UdpClient client = new UdpClient();
IPEndPoint ip = new IPEndPoint(IPAddress.Broadcast, 15000);
byte[] bytes = Encoding.ASCII.GetBytes("Foo");
client.Send(bytes, bytes.Length, ip);
client.Close();
}
}

最佳答案

严格来说,IP 网络中的数据包重复是允许的网络行为,您必须能够在您的软件中处理它,即使这次您会以某种方式摆脱它。如果您只是想知道为什么在您的特定情况下会发生这种情况……乍一看我没有发现您的代码有任何问题。您的计算机或类似的以太网端口上是否有多个 IP 地址?我想wireshark可能有助于获得有关正在发生的事情的更多详细信息。

关于c# - 发送UDP广播,接收多条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10832770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com