加入多播组或仅加入IP时是否需要PORT?

chr*_*tek 8 sockets linux networking udp multicast

我想一劳永逸地学习.连接多播套接字的步骤是什么?我知道你有绑定到一个本地接口(你需要的IP和端口是什么?),那么我知道你要加入一个组(你需要IP:再次端口要加入的地址和网络接口! !! ??)然后最后你可以离开小组.

有经验的人可以澄清这些地址的全部内容吗?我将在下面列出:

  • BindAddress(IP:PORT)
  • 网络地址(IP:PORT)
  • MulticastAddress(IP:PORT)

这里的组播在哪里以及是什么?

use*_*421 7

组播组是一个特殊的IP地址.您可以setsockopt()使用套接字选项IP_ADDMEMBERSHIP或例如Java via来加入它MulticastSocket.joinGroup().这里没有端口号.如果要通过特定的本地地址加入,请使用指定本地地址的重载,或setNetworkInterface()先调用.

绑定到本地地址是一个单独的操作,它主要确定套接字可以发送和接收数据的本地地址:一个或全部:一个本地地址,它确定您正在侦听哪些可用子网,并且可以发送通过,或端口,或两者.通常最好使用INADDR_ANY作为绑定地址,除非您的应用程序神奇地了解网络拓扑.

你可以绑定到Linux中的多播地址,但这似乎是一种误解,现在总是与我们在一起.

您通过发送到多播地址发送到多播组.

  • 绑定时是否可以指定"任何"端口? (2认同)