Package ch.qos.logback.core.net.server
Class ServerSocketListener<T extends Client>
java.lang.Object
ch.qos.logback.core.net.server.ServerSocketListener<T>
- All Implemented Interfaces:
ServerListener<T>,Closeable,AutoCloseable
- Direct Known Subclasses:
RemoteAppenderServerListener,RemoteReceiverServerListener
public abstract class ServerSocketListener<T extends Client>
extends Object
implements ServerListener<T>
A
ServerListener that accepts connections on a ServerSocket.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAccepts the next client that appears on this listener.voidclose()Closes any underlyingCloseableresources associated with this listener.protected abstract TcreateClient(String id, Socket socket) Creates the client object for a new socket connectionprivate StringsocketAddressToString(SocketAddress address) Converts a socket address to a reasonable display string.toString()
-
Field Details
-
serverSocket
-
-
Constructor Details
-
ServerSocketListener
Constructs a new listener.- Parameters:
serverSocket- server socket delegate
-
-
Method Details
-
acceptClient
Accepts the next client that appears on this listener.An implementation of this method is expected to block the calling thread and not return until either a client appears or an exception occurs.
- Specified by:
acceptClientin interfaceServerListener<T extends Client>- Returns:
- client object
- Throws:
IOException
-
createClient
Creates the client object for a new socket connection- Parameters:
id- identifier string for the clientsocket- client's socket connection- Returns:
- client object
- Throws:
IOException
-
close
public void close()Closes any underlyingCloseableresources 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
IOExceptionsubclass.Note also, that unlike
Closeable.close()this method is not permitted to propagate anyIOExceptionthat occurs when closing the underlying resource(s).- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceServerListener<T extends Client>
-
toString
-
socketAddressToString
Converts a socket address to a reasonable display string.- Parameters:
address- the subject socket address- Returns:
- display string
-