public abstract class ServerSocketListener<T extends Client> extends Object implements ServerListener<T>
ServerListener that accepts connections on a ServerSocket.| Constructor and Description |
|---|
ServerSocketListener(ServerSocket serverSocket)
Constructs a new listener.
|
| Modifier and Type | Method and Description |
|---|---|
T |
acceptClient()
Accepts the next client that appears on this listener.
|
void |
close()
Closes any underlying
Closeable resources associated with this
listener. |
protected abstract T |
createClient(String id,
Socket socket)
Creates the client object for a new socket connection
|
String |
toString() |
public ServerSocketListener(ServerSocket serverSocket)
serverSocket - server socket delegatepublic T acceptClient() throws IOException
An implementation of this method is expected to block the calling thread and not return until either a client appears or an exception occurs.
acceptClient in interface ServerListener<T extends Client>IOExceptionprotected abstract T createClient(String id, Socket socket) throws IOException
id - identifier string for the clientsocket - client's socket connectionIOExceptionpublic void close()
Closeable resources associated with this
listener.
Note that (as described in Doug Lea's discussion about interrupting I/O
operations in "Concurrent Programming in Java" (Addison-Wesley
Professional, 2nd edition, 1999) this method is used to interrupt
any blocked I/O operation in the client when the server is shutting
down. The client implementation must anticipate this potential,
and gracefully exit when the blocked I/O operation throws the
relevant IOException subclass.
Note also, that unlike Closeable.close() this method is not
permitted to propagate any IOException that occurs when closing
the underlying resource(s).
close in interface ServerListener<T extends Client>close in interface Closeableclose in interface AutoCloseableCopyright © 2005–2016 QOS.ch. All rights reserved.