首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多播套接字上接收单播

在多播套接字上接收单播
EN

Stack Overflow用户
提问于 2014-10-14 23:10:58
回答 2查看 2.6K关注 0票数 1

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

我的Android设备有IP 192.168.1.101。我的Android设备在端口55555上有一个多播套接字绑定,连接到多播组230.1.1.111上。

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

这有道理吗?多播套接字能否接收未寻址到其加入的多播组的数据报?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-14 23:23:12

多播套接字能否接收未寻址到其加入的多播组的数据报?

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

票数 2
EN

Stack Overflow用户

发布于 2016-04-29 19:36:17

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

代码语言:javascript
运行
复制
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();


        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26371920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档