【问题标题】:why is the UDPclient multicast not working?为什么 UDPclient 多播不起作用?
【发布时间】:2011-10-20 07:53:57
【问题描述】:
public void send_multicast(string message)
    {
        UdpClient c = new UdpClient(10102);
        Byte[] sendBytes = Encoding.ASCII.GetBytes(message); 
        IPAddress m_GrpAddr = IPAddress.Parse("224.0.0.1");
        IPEndPoint ep = new IPEndPoint(m_GrpAddr,10102);   
        c.MulticastLoopback=true;
         c.JoinMulticastGroup(m_GrpAddr);
        c.Send(sendBytes,sendBytes.Length,ep);
        Console.WriteLine(message);
    }

    public string recv_multicast()
    {
        Console.WriteLine("was here");
        String strData = "";
        //String Ret = "";
        ASCIIEncoding ASCII = new ASCIIEncoding();
        UdpClient c = new UdpClient(10101);

        // Establish the communication endpoint.
        IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 10101);
         IPAddress m_GrpAddr = IPAddress.Parse("224.0.0.1");

         c.JoinMulticastGroup(m_GrpAddr);
            Byte[] data = c.Receive(ref endpoint);
            strData = ASCII.GetString(data);
            //Ret += strData + "\n";

        return strData;
    }

端口有什么问题吗?

recv 方法被阻塞但没有收到消息?

在wireshark中我可以看到消息从本地地址端口10102到224.0.0.1 dest_port 0,但是recv没有从多播地址获取消息。

顺便说一句,我在同一台计算机上运行这两个实例。 参考:http://msdn.microsoft.com/en-us/library/ekd1t784.aspx

**得到解决方案:在发送例程中

IPEndPoint ep = new IPEndPoint(m_GrpAddr,10102); 

应该是

IPEndPoint ep = new IPEndPoint(m_GrpAddr,10101);

收货港口**

【问题讨论】:

    标签: c# udpclient


    【解决方案1】:

    您需要启用多播环回才能接收自己发送的数据包。

    http://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient.multicastloopback.aspx

    您应该在服务器端和客户端使用 JoinMulticastGroup。如果失败,您也可以尝试使用 Wireshark(google it)查看数据包是否实际发送。

    【讨论】:

    • 我在 send_multicast 中将 i 设置为 true,但没有效果
    • 请编辑您的问题以反映您对代码所做的更改。
    • 可能是你的路由器不支持IGMP。没有它,多播将无法工作。
    • 谢谢,但是由于您的wireshark想法,我得到了解决方案,它与端口有关。
    • 如果您可以在原始问题的末尾添加一个部分,详细说明您的工作代码和修复,那就太好了。将来可能会给其他人答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多