Package org.globus.net
Class ServerSocketFactory
- java.lang.Object
-
- org.globus.net.ServerSocketFactory
-
public class ServerSocketFactory extends java.lang.Object
This factory allows for creating regular server sockets. If the tcp.port.range system property is set it will create server sockets within the specified port range (if the port number is set to 0).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
ServerSocketFactory.PrServerSocket
-
Field Summary
Fields Modifier and Type Field Description private static ServerSocketFactory
defaultFactory
private PortRange
portRange
-
Constructor Summary
Constructors Modifier Constructor Description protected
ServerSocketFactory()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.net.ServerSocket
createServerSocket(int port)
Creates a server socket on a specified port.java.net.ServerSocket
createServerSocket(int port, int backlog)
Creates a server socket on a specified port.java.net.ServerSocket
createServerSocket(int port, int backlog, java.net.InetAddress bindAddr)
Create a server with the specified port, listen backlog, and local IP address to bind to.private java.net.ServerSocket
createServerSocket(int backlog, java.net.InetAddress binAddr)
Tries to find first available port within the port range specified.static ServerSocketFactory
getDefault()
Returns the default instance of this class.
-
-
-
Field Detail
-
defaultFactory
private static ServerSocketFactory defaultFactory
-
portRange
private PortRange portRange
-
-
Method Detail
-
getDefault
public static ServerSocketFactory getDefault()
Returns the default instance of this class.- Returns:
- ServerSocketFactory instance of this class.
-
createServerSocket
public java.net.ServerSocket createServerSocket(int port) throws java.io.IOException
Creates a server socket on a specified port. A port of0
creates a socket on any free port or if the tcp.port.range system property is set it creates a socket within the specified port range.The maximum queue length for incoming connection indications (a request to connect) is set to
50
. If a connection indication arrives when the queue is full, the connection is refused.- Parameters:
port
- the port number, or0
to use any free port or if the tcp.port.range property set to use any available port within the specified port range.- Throws:
java.io.IOException
- if an I/O error occurs when opening the socket.
-
createServerSocket
public java.net.ServerSocket createServerSocket(int port, int backlog) throws java.io.IOException
Creates a server socket on a specified port. A port of0
creates a socket on any free port or if the tcp.port.range system property is set it creates a socket within the specified port range.The maximum queue length for incoming connection indications (a request to connect) is set to the
backlog
parameter. If a connection indication arrives when the queue is full, the connection is refused.- Parameters:
port
- the port number, or0
to use any free port or if the tcp.port.range property set to use any available port within the specified port range.backlog
- the maximum length of the queue.- Throws:
java.io.IOException
- if an I/O error occurs when opening the socket.
-
createServerSocket
public java.net.ServerSocket createServerSocket(int port, int backlog, java.net.InetAddress bindAddr) throws java.io.IOException
Create a server with the specified port, listen backlog, and local IP address to bind to. The bindAddr argument can be used on a multi-homed host for a ServerSocket that will only accept connect requests to one of its addresses. If bindAddr is null, it will default accepting connections on any/all local addresses. The port must be between 0 and 65535, inclusive.- Parameters:
port
- the local TCP portbacklog
- the listen backlogbindAddr
- the local InetAddress the server will bind to- Throws:
java.io.IOException
- if an I/O error occurs when opening the socket.
-
createServerSocket
private java.net.ServerSocket createServerSocket(int backlog, java.net.InetAddress binAddr) throws java.io.IOException
Tries to find first available port within the port range specified. If it finds a free port, it first checks if the port is not used by any other server. If it is, it keeps looking for a next available port. If none found, it throws an exception. If the port is available the server instance is returned.- Throws:
java.io.IOException
-
-