Java Socket Address Get toBytes(SocketAddress address)

Here you can find the source of toBytes(SocketAddress address)

Description

Returns the given SocketAddress as a byte[] .

License

Apache License

Declaration

public static byte[] toBytes(SocketAddress address) 

Method Source Code

//package com.java2s;
/*//from   w  w w . j  a v a  2 s  . c  o m
 * Copyright 2010-2012 Roger Kapsi
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;

public class Main {
    /**
     * Returns the given {@link SocketAddress} as a {@code byte[]}.
     */
    public static byte[] toBytes(SocketAddress address) {
        return toBytes(getAddress(address), getPort(address));
    }

    /**
     * Returns the given {@link InetAddress} and port as a {@code byte[]}.
     */
    public static byte[] toBytes(InetAddress address, int port) {
        byte[] addr = address.getAddress();
        byte[] dst = new byte[addr.length + 2];

        System.arraycopy(addr, 0, dst, 0, addr.length);
        dst[dst.length - 2] = (byte) ((port >> 8) & 0xFF);
        dst[dst.length - 1] = (byte) ((port) & 0xFF);

        return dst;
    }

    /**
     * An utility method to get the {@link InetAddress} from the
     * {@link SocketAddress}.
     */
    public static InetAddress getAddress(SocketAddress address) {
        return getResolved(address).getAddress();
    }

    /**
     * Returns the port number.
     */
    public static int getPort(SocketAddress address) {
        return ((InetSocketAddress) address).getPort();
    }

    /**
     * Resolves (if necessary) the given {@link SocketAddress} and returns it.
     */
    public static InetSocketAddress getResolved(SocketAddress address) {
        InetSocketAddress isa = (InetSocketAddress) address;
        if (isa.isUnresolved()) {
            return new InetSocketAddress(isa.getHostName(), isa.getPort());
        }

        return isa;
    }

    /**
     * Returns {@code true} if the given {@link SocketAddress} is unresolved.
     */
    public static boolean isUnresolved(SocketAddress address) {
        return ((InetSocketAddress) address).isUnresolved();
    }

    /**
     * An utility method to get the {@link InetSocketAddress#getHostName()}.
     */
    public static String getHostName(SocketAddress address) {
        return ((InetSocketAddress) address).getHostName();
    }
}

Related

  1. stringAddressToSocketAddress(String address)
  2. stringifyInetSocketAddressList(InetSocketAddress[] addresses)
  3. stringToInetSocketAddress( String address, int defaultPort)
  4. toAddressString(InetSocketAddress address)
  5. toByte(InetSocketAddress socketAddress)
  6. toFileName(InetSocketAddress address)
  7. toHttpUrl(InetSocketAddress addr)
  8. toInetSocketAddress(String address)
  9. toInetSocketAddress(String hostPortPair, int defaultPort)