From e832ab3c91f01cdb1bd618ffe4a8e00505264d22 Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Thu, 3 Oct 2002 11:23:33 +0000 Subject: 2002-09-30 Michael Koch * java/net/DatagramSocket.java (receive): Check with SecurityManager AFTER the packet is received, check if connected to multicast address, documentation added. (send): Only check SecurityManager if connected, check address of packet to send. (connect): Implemented, documentation added. * java/net/Inet6Address.java: New file (not added yet to Makefile.am). * java/net/InetSocketAddress.java (whole file): Reindented. (hostname): New attribute. (InetSocketAddress): Initialize new attribute. (getAddress): Documentation added. (getHostName): Documentation added. (getPort): Documentation added. (hashCode): Documentation added. (isUnresolved): Documentation added. (toString): Conform to output of JDK 1.4.1, documentation added. * java/net/MulticastSocket.java (joinGroup): Removed FIXME, documentation added. (leaveGroup): Removed FIXME, documentation added. (send): Documentation added. * java/net/Socket.java (inputShutdown): New variable. (outputShutdown): New variable. (Socket): Initialize new variables. (getRemoteSocketAddress): Check if connected. (shutdownInput): Set new variable. (shutdownOutput): Set new variable. (isConnected): New method. (isClosed): New method. (isInputShutdown): New method. (isOutputShutdown): New method. * java/net/URLStreamHandler.java (URLStreamHandler): New method. (openConnection): Added documentation. (parseURL): Added documentation. (getHostAddress): New method. (getDefaultPort): New method. From-SVN: r57772 --- libjava/java/net/InetSocketAddress.java | 255 ++++++++++++++++++-------------- 1 file changed, 145 insertions(+), 110 deletions(-) (limited to 'libjava/java/net/InetSocketAddress.java') diff --git a/libjava/java/net/InetSocketAddress.java b/libjava/java/net/InetSocketAddress.java index 20ebbfaec5a..1f932a95b5f 100644 --- a/libjava/java/net/InetSocketAddress.java +++ b/libjava/java/net/InetSocketAddress.java @@ -47,119 +47,154 @@ package java.net; public class InetSocketAddress extends SocketAddress { - InetAddress addr; - int port; + String hostname; + InetAddress addr; + int port; - /** - * Constructs an InetSocketAddress instance. - * - * @param addr Address of the socket - * @param port Port if the socket - * - * @exception IllegalArgumentException If the port number is illegel - */ - public InetSocketAddress(InetAddress addr, int port) - throws IllegalArgumentException - { - if (port < 0 || port > 65535) - throw new IllegalArgumentException(); + /** + * Constructs an InetSocketAddress instance. + * + * @param addr Address of the socket + * @param port Port if the socket + * + * @exception IllegalArgumentException If the port number is illegal + */ + public InetSocketAddress(InetAddress addr, int port) + throws IllegalArgumentException + { + if (port < 0 || port > 65535) + throw new IllegalArgumentException(); - this.addr = addr; - this.port = port; - } - - /** - * Constructs an InetSocketAddress instance. - * - * @param port Port if the socket - * - * @exception IllegalArgumentException If the port number is illegal - */ - public InetSocketAddress(int port) - throws IllegalArgumentException - { - if (port < 0 || port > 65535) - throw new IllegalArgumentException(); - - this.port = port; - try { - this.addr = InetAddress.getLocalHost(); - } catch (Exception e) { - } - } - - - /** - * Constructs an InetSocketAddress instance. - * - * @param addr Address of the socket - * @param port Port if the socket - * - * @exception IllegalArgumentException If the port number is illegal - */ - public InetSocketAddress(String hostname, int port) - throws IllegalArgumentException - { - if (port < 0 || port > 65535) - throw new IllegalArgumentException(); - - this.port = port; - try { - this.addr = InetAddress.getByName(hostname); - } catch (Exception e) { - } - } + this.addr = addr; + this.port = port; + + try + { + this.hostname = addr.getHostName (); + } + catch (UnknownHostException e) + { + this.hostname = ""; + } + } + + /** + * Constructs an InetSocketAddress instance. + * + * @param port Port if the socket + * + * @exception IllegalArgumentException If the port number is illegal + */ + public InetSocketAddress(int port) + throws IllegalArgumentException + { + if (port < 0 || port > 65535) + throw new IllegalArgumentException(); + + this.port = port; + + try + { + byte[] any = { 0, 0, 0, 0 }; + this.addr = InetAddress.getByAddress (any); + this.hostname = "0.0.0.0"; + } + catch (UnknownHostException e) + { + this.addr = null; + this.hostname = ""; + } + } + + + /** + * Constructs an InetSocketAddress instance. + * + * @param addr Address of the socket + * @param port Port if the socket + * + * @exception IllegalArgumentException If the port number is illegal + */ + public InetSocketAddress(String hostname, int port) + throws IllegalArgumentException + { + if (port < 0 || port > 65535) + throw new IllegalArgumentException(); + + this.port = port; + this.hostname = hostname; + + try + { + this.addr = InetAddress.getByName(hostname); + } + catch (Exception e) // UnknownHostException, SecurityException + { + this.addr = null; + } + } - /** - * Test if obj is a InetSocketAddress and - * has the same address & port - */ - public final boolean equals(Object obj) - { - if (obj instanceof InetSocketAddress) - { - InetSocketAddress a = (InetSocketAddress) obj; - return addr.equals(a.addr) && a.port == port; - } - return false; - } - - public final InetAddress getAddress() - { - return addr; - } - - public final String getHostName() - { - return addr.getHostName(); - } - - public final int getPort() - { - return port; - } + /** + * Test if obj is a InetSocketAddress and + * has the same address and port + */ + public final boolean equals (Object obj) + { + if (obj instanceof InetSocketAddress) + { + InetSocketAddress a = (InetSocketAddress) obj; + return addr.equals(a.addr) && a.port == port; + } + + return false; + } + + /** + * Returns the InetAddress or + * null if its unresolved + */ + public final InetAddress getAddress() + { + return addr; + } + + /** + * Returns hostname + */ + public final String getHostName() + { + return hostname; + } + + /** + * Returns the port + */ + public final int getPort() + { + return port; + } - /** - * TODO: see what sun does here. - */ - public final int hashCode() - { - return port + addr.hashCode(); - } - - /** - * TODO: see what sun does here. - */ - public final boolean isUnresolved() - { - return addr == null; - } + /** + * Returns the hashcode of the InetSocketAddress + */ + public final int hashCode() + { + return port + addr.hashCode(); + } + + /** + * Checks wether the address has been resolved or not + */ + public final boolean isUnresolved() + { + return addr == null; + } - /** - * TODO: see what sun does here. - */ - public String toString() - { - return "SA:"+addr+":"+port; - } + /** + * Returns the InetSocketAddress as string + */ + public String toString() + { + return addr + ":" + port; + } } -- cgit v1.2.3