我只是好奇。那是一个API错误吗?当您加入多播组时,您不使用端口,只使用多播组的多播地址(IP),对吧?当使用PORT时,是否会出现这种情况? 最佳答案 这个问题最好改写为“为什么DatagramSocket.joinGroup()需要一个SocketAddress参数,它可以包含一个端口号?”SocketAddress中的端口号被忽略。多播完全是根据IP地址定义的。我认为使用SocketAddress的原因是它可以暗示一个未解析的地址,其中InetAddress暗示一个已解析的地址,你不能解析多播地址,但不要引用我的话;-)
我可能对此处的绑定(bind)一词有根本的误解,但我对MulticastSocket的用法感到困惑。它是构造函数。他们不会做我理解他们应该做的事情,因此任何能帮助我消除误解的人都将不胜感激。首先是我想要达到的目标。我试图编写一个简短的程序来创建一个MulticastSocket将它绑定(bind)(即监听)在上。特定网络适配器然后加入特定的多播组。我已经尝试了以下(客户端)代码,它可以正常工作,我可以在没有多播套接字超时的情况下向它多播一个数据包。publicclassMain{publicstaticfinalintDEFAULT_MULTICAST_PORT=5555;public
我们正在为ipad开发一个iOS应用程序,它使用bonjour与其他设备连接,使用couchbaseListener与对等数据库进行复制。我们观察到,每当[nsnetserviceaddresses]返回IPV6地址时,复制都不成功。只有当蓝牙随机打开时,我们才能获得IPV4地址,即5次中有1次。此外,[NSNetServiceaddresses]仅返回数组中的一个地址。是否有可能以某种方式将IPV6地址转换为IPV4地址,或者始终检索IPV4地址?请在下面找到用于转换为IP地址的代码。charaddressBuffer[INET6_ADDRSTRLEN];for(NSData*dat