2002-09-30 Michael Koch <konqueror@gmx.de>

* 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
This commit is contained in:
Michael Koch 2002-10-03 11:23:33 +00:00 committed by Michael Koch
parent 3eacc81d00
commit e832ab3c91
7 changed files with 596 additions and 120 deletions

View file

@ -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;
}
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();
try
{
this.hostname = addr.getHostName ();
}
catch (UnknownHostException e)
{
this.hostname = "";
}
}
this.port = port;
try {
this.addr = InetAddress.getLocalHost();
} catch (Exception e) {
}
}
/**
* 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();
/**
* 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.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 <code>InetSocketAddress</code> 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;
}
/**
* TODO: see what sun does here.
*/
public final int hashCode()
{
return port + addr.hashCode();
}
return false;
}
/**
* TODO: see what sun does here.
*/
public final boolean isUnresolved()
{
return addr == null;
}
/**
* Returns the <code>InetAddress</code> or
* <code>null</code> if its unresolved
*/
public final InetAddress getAddress()
{
return addr;
}
/**
* Returns <code>hostname</code>
*/
public final String getHostName()
{
return hostname;
}
/**
* Returns the <code>port</code>
*/
public final int getPort()
{
return port;
}
/**
* TODO: see what sun does here.
*/
public String toString()
{
return "SA:"+addr+":"+port;
}
/**
* Returns the hashcode of the <code>InetSocketAddress</code>
*/
public final int hashCode()
{
return port + addr.hashCode();
}
/**
* Checks wether the address has been resolved or not
*/
public final boolean isUnresolved()
{
return addr == null;
}
/**
* Returns the <code>InetSocketAddress</code> as string
*/
public String toString()
{
return addr + ":" + port;
}
}