java.net
Class InetSocketAddress

java.lang.Object
  extended byjava.net.SocketAddress
      extended byjava.net.InetSocketAddress
All Implemented Interfaces:
Serializable

public class InetSocketAddress
extends SocketAddress

This class implements an IP Socket Address (IP address + port number) It can also be a pair (hostname + port number), in which case an attempt will be made to resolve the hostname. If resolution fails then the address is said to be unresolved but can still be used on some circumstances like connecting through a proxy.

It provides an immutable object used by sockets for binding, connecting, or as returned values.

The wildcard is a special local IP address. It usually means "any" and can only be used for bind operations.

Since:
1.4
See Also:
Socket, ServerSocket, Serialized Form

Field Summary
private  InetAddress addr
           
private  String hostname
           
private  int port
           
private static long serialVersionUID
           
 
Constructor Summary
InetSocketAddress(InetAddress addr, int port)
          Creates a socket address from an IP address and a port number.
InetSocketAddress(int port)
          Creates a socket address where the IP address is the wildcard address and the port number a specified value.
InetSocketAddress(String hostname, int port)
          Creates a socket address from a hostname and a port number.
 
Method Summary
 boolean equals(Object obj)
          Compares this object against the specified object.
 InetAddress getAddress()
          Gets the InetAddress.
 String getHostName()
          Gets the hostname.
 int getPort()
          Gets the port number.
 int hashCode()
          Returns a hashcode for this socket address.
 boolean isUnresolved()
          Checks wether the address has been resolved or not.
private  void readObject(ObjectInputStream s)
           
 String toString()
          Constructs a string representation of this InetSocketAddress.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

hostname

private String hostname

addr

private InetAddress addr

port

private int port

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

InetSocketAddress

public InetSocketAddress(int port)
Creates a socket address where the IP address is the wildcard address and the port number a specified value.

A valid port value is between 0 and 65535. A port number of zero will let the system pick up an ephemeral port in a bind operation.

Parameters:
port - The port number
Throws:
IllegalArgumentException - if the port parameter is outside the specified range of valid port values.

InetSocketAddress

public InetSocketAddress(InetAddress addr,
                         int port)
Creates a socket address from an IP address and a port number.

A valid port value is between 0 and 65535. A port number of zero will let the system pick up an ephemeral port in a bind operation.

A null address will assign the wildcard address.

Parameters:
addr - The IP address
port - The port number
Throws:
IllegalArgumentException - if the port parameter is outside the specified range of valid port values.

InetSocketAddress

public InetSocketAddress(String hostname,
                         int port)
Creates a socket address from a hostname and a port number.

An attempt will be made to resolve the hostname into an InetAddress. If that attempt fails, the address will be flagged as unresolved.

A valid port value is between 0 and 65535. A port number of zero will let the system pick up an ephemeral port in a bind operation.

Parameters:
hostname - the Host name
port - The port number
Throws:
IllegalArgumentException - if the port parameter is outside the range of valid port values, or if the hostname parameter is null.
See Also:
isUnresolved()
Method Detail

readObject

private void readObject(ObjectInputStream s)
                 throws IOException,
                        ClassNotFoundException
Throws:
IOException
ClassNotFoundException

getPort

public final int getPort()
Gets the port number.

Returns:
the port number.

getAddress

public final InetAddress getAddress()
Gets the InetAddress.

Returns:
the InetAdress or null if it is unresolved.

getHostName

public final String getHostName()
Gets the hostname.

Returns:
the hostname part of the address.

isUnresolved

public final boolean isUnresolved()
Checks wether the address has been resolved or not.

Returns:
true if the hostname couldn't be resolved into an InetAddress.

toString

public String toString()
Constructs a string representation of this InetSocketAddress. This String is constructed by calling toString() on the InetAddress and concatenating the port number (with a colon). If the address is unresolved then the part before the colon will only contain the hostname.

Overrides:
toString in class Object
Returns:
a string representation of this object.

equals

public final boolean equals(Object obj)
Compares this object against the specified object. The result is true if and only if the argument is not null and it represents the same address as this object.

Two instances of InetSocketAddress represent the same address if both the InetAddresses (or hostnames if it is unresolved) and port numbers are equal. If both addresses are unresolved, then the hostname & the port number are compared.

Overrides:
equals in class Object
Parameters:
obj - the object to compare against.
Returns:
true if the objects are the same; false otherwise.
See Also:
InetAddress.equals(java.lang.Object)

hashCode

public final int hashCode()
Returns a hashcode for this socket address.

Overrides:
hashCode in class Object
Returns:
a hash code value for this socket address.
See Also:
Object.equals(java.lang.Object), Hashtable