Top Description Fields Constructors Methods
io.grpc

public abstract Class Server

extends Object
Class Inheritance
Annotations
@ThreadSafe
Imports
java.io.IOException, java.net.SocketAddress, java.util.Collections, .List, java.util.concurrent.TimeUnit, javax.annotation.concurrent.ThreadSafe

Server for listening for and dispatching incoming calls. It is not expected to be implemented by application code or interceptors.

Field Summary

Modifier and TypeField and Description
pack-priv static final Context.Key<Server>
SERVER_CONTEXT_KEY

Key for accessing the Server instance inside server RPC Context.

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public abstract boolean

Returns:

whether the server is terminated, as would be done by isTerminated().
awaitTermination
(long timeout, TimeUnit unit)

Waits for the server to become terminated, giving up if the timeout is reached.

public abstract void
awaitTermination()

Waits for the server to become terminated.

public List<ServerServiceDefinition>
getImmutableServices()

Returns immutable services registered with the server, or an empty list if not supported by the implementation.

public List<? extends SocketAddress>
getListenSockets()

Returns a list of listening sockets for this server.

public List<ServerServiceDefinition>
getMutableServices()

Returns mutable services registered with the server, or an empty list if not supported by the implementation.

public int
getPort()

Returns the port number the server is listening on.

public List<ServerServiceDefinition>
getServices()

Returns all services registered with the server, or an empty list if not supported by the implementation.

public abstract boolean
isShutdown()

Returns whether the server is shutdown.

public abstract boolean
isTerminated()

Returns whether the server is terminated.

public abstract Server

Returns:

this object
shutdown
()

Initiates an orderly shutdown in which preexisting calls continue but new calls are rejected.

public abstract Server

Returns:

this object
shutdownNow
()

Initiates a forceful shutdown in which preexisting and new calls are rejected.

public abstract Server

Returns:

this object
start
()

Bind and start the server.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

SERVER_CONTEXT_KEYback to summary
pack-priv static final Context.Key<Server> SERVER_CONTEXT_KEY

Key for accessing the Server instance inside server RPC Context. It's unclear to us what users would need. If you think you need to use this, please file an issue for us to discuss a public API.

Constructor Detail

Serverback to summary
public Server()

Method Detail

awaitTerminationback to summary
public abstract boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException

Waits for the server to become terminated, giving up if the timeout is reached.

Calling this method before start() or shutdown() is permitted and does not change its behavior.

Returns:boolean

whether the server is terminated, as would be done by isTerminated().

awaitTerminationback to summary
public abstract void awaitTermination() throws InterruptedException

Waits for the server to become terminated.

Calling this method before start() or shutdown() is permitted and does not change its behavior.

Since
1.0.0
getImmutableServicesback to summary
public List<ServerServiceDefinition> getImmutableServices()

Returns immutable services registered with the server, or an empty list if not supported by the implementation.

Annotations
@ExperimentalApi:https://github.com/grpc/grpc-java/issues/2222
Since
1.1.0
getListenSocketsback to summary
public List<? extends SocketAddress> getListenSockets()

Returns a list of listening sockets for this server. May be different than the originally requested sockets (e.g. listening on port '0' may end up listening on a different port). The list is unmodifiable.

Annotations
@ExperimentalApi:https://github.com/grpc/grpc-java/issues/5332
Exceptions
IllegalStateException:
if the server has not yet been started.
Since
1.19.0
getMutableServicesback to summary
public List<ServerServiceDefinition> getMutableServices()

Returns mutable services registered with the server, or an empty list if not supported by the implementation.

Annotations
@ExperimentalApi:https://github.com/grpc/grpc-java/issues/2222
Since
1.1.0
getPortback to summary
public int getPort()

Returns the port number the server is listening on. This can return -1 if there is no actual port or the result otherwise does not make sense. Result is undefined after the server is terminated. If there are multiple possible ports, this will return one arbitrarily. Implementations are encouraged to return the same port on each call.

Exceptions
IllegalStateException:
if the server has not yet been started.
Since
1.0.0
See Also
getListenSockets()
getServicesback to summary
public List<ServerServiceDefinition> getServices()

Returns all services registered with the server, or an empty list if not supported by the implementation.

Annotations
@ExperimentalApi:https://github.com/grpc/grpc-java/issues/2222
Since
1.1.0
isShutdownback to summary
public abstract boolean isShutdown()

Returns whether the server is shutdown. Shutdown servers reject any new calls, but may still have some calls being processed.

Since
1.0.0
See Also
shutdown(), isTerminated()
isTerminatedback to summary
public abstract boolean isTerminated()

Returns whether the server is terminated. Terminated servers have no running calls and relevant resources released (like TCP connections).

Since
1.0.0
See Also
isShutdown()
shutdownback to summary
public abstract Server shutdown()

Initiates an orderly shutdown in which preexisting calls continue but new calls are rejected. After this call returns, this server has released the listening socket(s) and may be reused by another server.

Note that this method will not wait for preexisting calls to finish before returning. awaitTermination() or awaitTermination(long, TimeUnit) needs to be called to wait for existing calls to finish.

Calling this method before start() will shut down and terminate the server like normal, but prevents starting the server in the future.

Returns:Server

this object

Since
1.0.0
shutdownNowback to summary
public abstract Server shutdownNow()

Initiates a forceful shutdown in which preexisting and new calls are rejected. Although forceful, the shutdown process is still not instantaneous; isTerminated() will likely return false immediately after this method returns. After this call returns, this server has released the listening socket(s) and may be reused by another server.

Calling this method before start() will shut down and terminate the server like normal, but prevents starting the server in the future.

Returns:Server

this object

Since
1.0.0
startback to summary
public abstract Server start() throws IOException

Bind and start the server. After this call returns, clients may begin connecting to the listening socket(s).

Returns:Server

this object

Exceptions
IOException:
if unable to bind
IllegalStateException:
if already started or shut down
Since
1.0.0