Java Broadcast Address Get getBroadcastAddresses(int port)

Here you can find the source of getBroadcastAddresses(int port)

Description

Get broadcast addresses.

License

Open Source License

Parameter

Parameter Description
port port to be added to get socket address.

Return

array of broadcast addresses with given port.

Declaration

public static InetSocketAddress[] getBroadcastAddresses(int port) 

Method Source Code


//package com.java2s;
/*//from   w w  w  .ja va 2  s  . c  o m
 * Copyright (c) 2004 by Cosylab
 *
 * The full license specifying the redistribution, modification, usage and other
 * rights and obligations is included with the distribution of this project in
 * the file "LICENSE-CAJ". If the license is not included visit Cosylab web site,
 * <http://www.cosylab.com>.
 *
 * THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, NOT EVEN THE
 * IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR OF THIS SOFTWARE, ASSUMES
 * _NO_ RESPONSIBILITY FOR ANY CONSEQUENCE RESULTING FROM THE USE, MODIFICATION,
 * OR REDISTRIBUTION OF THIS SOFTWARE.
 */

import java.net.InetSocketAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;

public class Main {
    /**
     * Get broadcast addresses.
     * @param port port to be added to get socket address.
     * @return array of broadcast addresses with given port.
     */
    public static InetSocketAddress[] getBroadcastAddresses(int port) {
        Enumeration nets;
        try {
            nets = NetworkInterface.getNetworkInterfaces();
        } catch (SocketException se) {
            // fallback
            return new InetSocketAddress[] { new InetSocketAddress("255.255.255.255", port) };
        }

        ArrayList list = new ArrayList(10);

        while (nets.hasMoreElements()) {
            NetworkInterface net = (NetworkInterface) nets.nextElement();
            //if (net.isUp())
            {
                List interfaceAddresses = net.getInterfaceAddresses();
                Iterator iter = interfaceAddresses.iterator();
                while (iter.hasNext()) {
                    InterfaceAddress addr = (InterfaceAddress) iter.next();
                    if (addr.getBroadcast() != null) {
                        InetSocketAddress isa = new InetSocketAddress(addr.getBroadcast(), port);
                        if (!list.contains(isa))
                            list.add(isa);
                    }
                }
            }
        }

        InetSocketAddress[] retVal = new InetSocketAddress[list.size()];
        list.toArray(retVal);
        return retVal;
    }
}

Related

  1. getBroadcastAddress()
  2. getBroadcastAddresses()
  3. getBroadcastAddresses()
  4. getBroadcastAddresses()
  5. getBroadcastAddresses(int port)