Struct tokio_proto::TcpServer
[−]
[src]
pub struct TcpServer<Kind, P> { /* fields omitted */ }
A builder for TCP servers.
Setting up a server needs, at minimum:
- A server protocol implementation
- An address
- A service to provide
In addition to those basics, the builder provides some additional configuration, which is expected to grow over time.
See the crate docs for an example.
Methods
impl<Kind, P> TcpServer<Kind, P> where P: BindServer<Kind, TcpStream> + Send + Sync + 'static
[src]
fn new(protocol: P, addr: SocketAddr) -> TcpServer<Kind, P>
Starts building a server for the given protocol and address, with default configuration.
Generally, a protocol is implemented not by implementing the
BindServer
trait directly, but instead by implementing one of the
protocol traits:
pipeline::ServerProto
multiplex::ServerProto
streaming::pipeline::ServerProto
streaming::multiplex::ServerProto
See the crate documentation for more details on those traits.
fn addr(&mut self, addr: SocketAddr)
Set the address for the server.
fn threads(&mut self, threads: usize)
Set the number of threads running simultaneous event loops (Unix only).
fn serve<S>(&self, new_service: S) where S: NewService<Request=P::ServiceRequest, Response=P::ServiceResponse, Error=P::ServiceError> + Send + Sync + 'static
Start up the server, providing the given service on it.
This method will block the current thread until the server is shut down.
fn with_handle<F, S>(&self, new_service: F) where F: Fn(&Handle) -> S + Send + Sync + 'static, S: NewService<Request=P::ServiceRequest, Response=P::ServiceResponse, Error=P::ServiceError> + Send + Sync + 'static
Start up the server, providing the given service on it, and providing access to the event loop handle.
The new_service
argument is a closure that is given an event loop
handle, and produces a value implementing NewService
. That value is in
turned used to make a new service instance for each incoming connection.
This method will block the current thread until the server is shut down.