【问题标题】:Receiving Unicast on Multicast socket在多播套接字上接收单播
【发布时间】:2014-10-14 23:10:58
【问题描述】:

我有一台服务器向 192.168.1.101 的 55555 端口发送单播 UDP 数据包。

我的 Android 设备的 IP 为 192.168.1.101。我的 Android 设备在端口 55555 上绑定了一个多播套接字,该套接字加入了多播组 230.1.1.111。

我正在我的 Android 多播套接字上从服务器接收数据报。

这有意义吗?多播套接字可以接收不是发往其加入的多播组的数据报吗?

【问题讨论】:

    标签: java android networking udp multicast


    【解决方案1】:

    多播套接字能否接收未发送至其加入的多播组的数据报?

    是的,它可以。它可以加入零个或多个多播组。这不会影响其单播功能。

    【讨论】:

    • 谢谢。当我亲眼看到这个问题后,我觉得这个问题很愚蠢,但我只是感到惊讶。健全性检查。
    【解决方案2】:

    添加以下代码以供参考.. 我们能够在同一个端口接收多播和单播消息。

    import java.net.DatagramPacket;
    import java.net.InetAddress;
    import java.net.MulticastSocket;
    
    public class MulticastReceiver {
    
            public static void main(String[] args) throws Exception {
                int mcPort = 1800;
                String mcIPStr = "239.255.255.250";
                MulticastSocket mcSocket = null;
                InetAddress mcIPAddress = null;
                mcIPAddress = InetAddress.getByName(mcIPStr);
                mcSocket = new MulticastSocket(mcPort);
                System.out.println("Multicast Receiver running at:"
                        + mcSocket.getLocalSocketAddress());
                mcSocket.joinGroup(mcIPAddress);
    
    
            boolean var=true;           
            while(var){ 
                DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
                System.out.println("Waiting for a  multicast message...");
                mcSocket.receive(packet);
    
            System.out.println("packet length is " +packet.getLength());
    
    
                String msg = new String(packet.getData(),0,1024);
                System.out.println("[Multicast  Receiver] Received:" + msg);
            }
                mcSocket.leaveGroup(mcIPAddress);
                mcSocket.close();
    
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 2018-02-05
      相关资源
      最近更新 更多