C - The type of the service's configuration.public interface StreamServer<C extends StreamServerConfiguration> extends Runnable
This service typically listens on a socket for TCP connections.
This listening loop is started with the run() method, this service is
Runnable. Then Router.received(UpnpStream) is called with a custom
UpnpStream. This will start processing of the request and run() the
UpnpStream (which is also Runnable) in a separate thread,
freeing up the receiving thread immediately.
The UpnpStream then creates a StreamRequestMessage
and calls the UpnpStream.process(org.jupnp.model.message.StreamRequestMessage)
method. The UpnpStream then returns the response to the network client.
In pseudo-code:
MyStreamServer implements StreamServer {
run() {
while (not stopped) {
Connection con = listenToSocketAndBlock();
router.received( new MyUpnpStream(con) );
}
}
}
MyUpnpStream(con) extends UpnpStream {
run() {
try {
StreamRequestMessage request = // ... Read request
StreamResponseMessage response = process(request);
// ... Send response
responseSent(response))
} catch (Exception ex) {
responseException(ex);
}
}
}
An implementation has to be thread-safe.
| Modifier and Type | Method and Description |
|---|---|
C |
getConfiguration() |
int |
getPort()
This method will be called potentially right after
init(java.net.InetAddress, org.jupnp.transport.Router), the
actual assigned local port must be available before the server is started. |
void |
init(InetAddress bindAddress,
Router router)
Configures the service and starts any listening sockets.
|
void |
stop()
Stops the service, closes any listening sockets.
|
void init(InetAddress bindAddress, Router router) throws InitializationException
bindAddress - The address to bind any sockets on.router - The router which handles the incoming UpnpStream.InitializationException - If the service could not be initialized or started.int getPort()
init(java.net.InetAddress, org.jupnp.transport.Router), the
actual assigned local port must be available before the server is started.void stop()
C getConfiguration()
Copyright © 2023 jUPnP.org. All rights reserved.