MulticastSocket joinGroup(SocketAddress, NetworkInterface) in Java

joinGroup(SocketAddress, NetworkInterface): This method is available in the java.net.MulticastSocket class of  Java.

Syntax:

void java.net.MulticastSocket.joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException

This method takes two arguments. This method joins the specified multicast group at the specified interface.

Parameters: Two parameters are required for this method.

mcastaddr: is the multicast address to join.

netIf: specifies the local interface to receive multicast datagram packets, or null to defer to the interface set by MulticastSocket.setInterface(InetAddress) or MulticastSocket.setNetworkInterface(NetworkInterface). If null, and no interface has been set, the behavior is unspecified: any interface may be selected or the operation may fail with a SocketException.

Throws:

1. IOException - if there is an error joining, or when the address is not a multicast address, or the platform does not support multicasting.

2. SecurityException - if a security manager exists and its checkMulticast method doesn't allow the join.

3. IllegalArgumentException - if mcastaddr is null or is aSocketAddress subclass not supported by this socket.

Approach

Java

package com.MulticastSocket;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.MulticastSocket;
import java.net.NetworkInterface;
import java.net.SocketAddress;

public class MulticastSocketjoinGroup {
    public static void main(String[] args) throws IOException {

        MulticastSocket multicastSocket = new MulticastSocket();

        int port = 8080;
        SocketAddress mcastaddr = new InetSocketAddress(port);
        int index = 1;
        NetworkInterface netif = NetworkInterface.getByIndex(index);
        multicastSocket.joinGroup(mcastaddr, netif);
        System.out.println("Successfully joined the group");
    }
}

Output:

Exception in thread "main" java.net.SocketException: Not a multicast address at java.base/sun.nio.ch.DatagramSocketAdaptor.checkGroup(DatagramSocketAdaptor.java:513) at java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.java:519) at java.base/java.net.MulticastSocket.joinGroup(MulticastSocket.java:384) at com.MulticastSocket.MulticastSocketjoinGroup.main(MulticastSocketjoinGroup.java:18)


Some other methods of MulticastSocket class

MulticastSocket()This method constructs a multicast socket and binds it to any available port on the local host machine. 

MulticastSocket(int)This method constructs a multicast socket and binds it to the specified port on the local host machine.

MulticastSocket(SocketAddress)This method creates a multicast socket, bound to the specified local socket address.

getNetworkInterface()This method gets the multicast network interface set.

getTimeToLive()This method gets the default time-to-live for multicast packets sent out on the socket.

joinGroup(SocketAddress, NetworkInterface)This method joins the specified multicast group at the specified interface.

leaveGroup(SocketAddress, NetworkInterface)This method leaves a multicast group on a specified local interface.

setNetworkInterface(NetworkInterface)This method specifies the network interface for outgoing multicast datagrams sent on this socket.

setTimeToLive(int)This method sets the default time-to-live for multicast packets sent out to this MulticastSocket in order to control the scope of the multicast.

No comments:

Post a Comment