Package org.globus.net
Class BaseServer
java.lang.Object
org.globus.net.BaseServer
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
CallbackHandler
,GassServer
This class provides the basics for writing various servers.
Note: Sockets created by this server have a 5 minute default timeout.
The timeout can be changed using the
setTimeout()
function.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ServerSocket
protected boolean
protected Authorization
protected GSSCredential
protected org.globus.net.AbstractServerDeactivator
A handler for the deactivation framework.protected Integer
static final int
Socket timeout in milliseconds.protected int
protected String
-
Constructor Summary
ConstructorsConstructorDescriptionBaseServer
(boolean secure, int port) BaseServer
(int port) BaseServer
(GSSCredential cred, int port) -
Method Summary
Modifier and TypeMethodDescriptiongetHost()
Returns hostname of this server.Returns hostname of this serverint
getPort()
Returns port of this serverint
getURL()
Returns url of this serverprotected abstract void
handleConnection
(Socket socket) This method needs to be implemented by subclasses.protected void
This method should be called by all subclasses.void
Registers a default deactivation handler.void
run()
void
void
setGssMode
(Integer mode) void
setTimeout
(int timeout) Sets timeout for the created sockets.void
shutdown()
Stops the server but does not stop all the client threadsprotected void
start()
Starts the server.void
Unregisters a default deactivation handler.protected Socket
wrapSocket
(Socket socket)
-
Field Details
-
SO_TIMEOUT
public static final int SO_TIMEOUTSocket timeout in milliseconds.- See Also:
-
accept
protected boolean accept -
_server
-
url
-
credentials
-
authorization
-
gssMode
-
timeout
protected int timeout -
deactivator
protected org.globus.net.AbstractServerDeactivator deactivatorA handler for the deactivation framework.
-
-
Constructor Details
-
BaseServer
- Throws:
IOException
-
BaseServer
- Throws:
IOException
-
BaseServer
- Throws:
IOException
-
BaseServer
- Throws:
IOException
-
-
Method Details
-
initialize
protected void initialize()This method should be called by all subclasses. -
start
protected void start()Starts the server. -
setTimeout
public void setTimeout(int timeout) Sets timeout for the created sockets. By default if not set, 5 minute timeout is used. -
getTimeout
public int getTimeout() -
shutdown
public void shutdown()Stops the server but does not stop all the client threads -
getCredentials
-
getProtocol
-
getURL
Returns url of this server- Returns:
- url of this server
-
getPort
public int getPort()Returns port of this server- Returns:
- port number
-
getHostname
Returns hostname of this server- Returns:
- hostname
-
getHost
Returns hostname of this server. The format of the host conforms to RFC 2732, i.e. for a literal IPv6 address, this method will return the IPv6 address enclosed in square brackets ('[' and ']').- Returns:
- hostname
-
run
public void run() -
wrapSocket
- Throws:
GSSException
-
setGssMode
-
setAuthorization
-
handleConnection
This method needs to be implemented by subclasses. Optimmaly, it should be a non-blocking call starting a separate thread to handle the client. Note that to start an SSL handshake, you need to call socket.getInput(Output) stream(). -
registerDefaultDeactivator
public void registerDefaultDeactivator()Registers a default deactivation handler. It is used to shutdown the server without having a reference to the server. Call Deactivate.deactivateAll() to shutdown all registered servers. -
unregisterDefaultDeactivator
public void unregisterDefaultDeactivator()Unregisters a default deactivation handler.
-