【问题标题】:C# UdpClient.receive() not receiving responses to broadcast requestC# UdpClient.receive() 未收到对广播请求的响应
【发布时间】:2016-02-10 14:52:18
【问题描述】:

我正在尝试将数据从我的笔记本电脑发送到在端口 30718 上通信的 UDP 服务器。数据发送是正确的,但是当我想接收响应时,程序卡在 UdpClient.receive() 方法上。我试图用wireshark嗅探网络,似乎响应正确传递,但c#不会收到它。 这是我的代码:

private void button1_Click(object sender, EventArgs e)
    {
        byte[] data = new byte[4];
        data[0] = 0x00;
        data[1] = 0x01;
        data[2] = 0x00;
        data[3] = 0xF6;

        byte[] rcvPacket = new Byte[1024];
        UdpClient client = new UdpClient();
        IPAddress address = IPAddress.Parse("255.255.255.255");
        client.EnableBroadcast = true;
        client.Connect(address, 30718);
        IPEndPoint remoteIPEndPoint = new IPEndPoint(IPAddress.Any, 0);


        client.Send(data, 4);
        rcvPacket = client.Receive(ref remoteIPEndPoint);

        string rcvData = Encoding.ASCII.GetString(rcvPacket);
        client.Close();  //close connection
    }

这是wireshark的输出(第二张图是对广播请求的响应):

有人有解决这个问题的方法吗? 谢谢。

【问题讨论】:

标签: c# udp broadcast


【解决方案1】:

终于找到了解决办法。 这是发送广播和接收响应的好例子。 C# How to do Network discovery using UDP Broadcast

【讨论】:

    猜你喜欢
    • 2022-12-31
    • 2021-06-02
    • 2019-04-25
    • 1970-01-01
    • 2011-09-03
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多