A T*_*mes 1 java sockets multicast
我在创建MulticastSocket后尝试加入组播组.
做类似的事情:
MulticastSocket mySocket = new MulticastSocket(4444);
mySocket.joinGroup(InetAddress.getByName("230.0.0.1")); // as an example
Run Code Online (Sandbox Code Playgroud)
工作良好.但是,当我使用接受SocketAddress作为参数的MulticastSocket构造函数时,不会加入多播组,并且需要对joinGroup()进行单独调用.
MulticastSocket mySocket = new MulticastSocket(new InetSocketAddress("230.0.0.1", 4444));
Run Code Online (Sandbox Code Playgroud)
为什么是这样?
谢谢!
除非我错误,否则通过向本地网络交换机注册(使用joinGroup发送IGMP消息的方法)来实现多播,然后交换机将所有发送到多播地址的数据包转发到已注册的每个设备.如果您不调用joinGroup,则不会发送组注册消息,本地交换机不知道您关心消息,因此您实际上不会收到任何消息.
有些交换机比其他交换机更严格地发送:我看到一些设备可以发送到组播组但没有注册的交换机,但没有接收到组播组的数据包,我看到设备必须注册的其他交换机成功发送到组播组的其他成员或接收发送到组播组的数据包.
| 归档时间: |
|
| 查看次数: |
7473 次 |
| 最近记录: |