【问题标题】:Is there a way to allow multiple programs to subscribe to the same multicast group on windows?有没有办法让多个程序在 Windows 上订阅同一个多播组?
【发布时间】:2012-05-16 23:27:47
【问题描述】:

我有两个应用程序需要订阅同一个多播组/端口组合。目前,我可以处理此问题的唯一方法是构建一个代理应用程序,该应用程序订阅多播组并通过单独的 TCP 连接将接收到的流量转发到每个应用程序。我想摆脱代理应用程序并让每个应用程序自己订阅多播组,但是我得到一个套接字异常“通常只允许每个套接字地址的一次使用”。

有没有办法解决这个问题?为什么每台计算机只允许订阅一个给定的多播组?

【问题讨论】:

    标签: c# windows multicast


    【解决方案1】:

    不完全确定是否允许,但请在此处寻找可能的解决方案:

    Sending and receiving UDP packets between two programs on the same computer

    最终,您不会使用指定的端点实例化UdpClient。您将改为实例化一个新的 UdpClient,设置 SocketOptions 以重用端点,然后绑定:

    IPEndPoint localpt = new IPEndPoint(IPAddress.Any, 6000);
    UdpClient udpListener = new UdpClient();
    udpListener.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
    udpListener.Client.Bind(localpt);
    

    以上答案适用于在同一端口上发送/接收,因此不确定它是否适用于在同一端口上的 2 个单独应用程序中接收。试试看,让我们知道。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      • 1970-01-01
      • 2020-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多