[−][src]Struct tokio_proto::TcpServer
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]
P: BindServer<Kind, TcpStream> + Send + Sync + 'static,
pub fn new(protocol: P, addr: SocketAddr) -> TcpServer<Kind, P>
[src]
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.
pub fn addr(&mut self, addr: SocketAddr)
[src]
Set the address for the server.
pub fn threads(&mut self, threads: usize)
[src]
Set the number of threads running simultaneous event loops (Unix only).
pub fn serve<S>(&self, new_service: S) where
S: NewService + Send + Sync + 'static,
S::Instance: 'static,
P::ServiceError: 'static,
P::ServiceResponse: 'static,
P::ServiceRequest: 'static,
S::Request: From<P::ServiceRequest>,
S::Response: Into<P::ServiceResponse>,
S::Error: Into<P::ServiceError>,
[src]
S: NewService + Send + Sync + 'static,
S::Instance: 'static,
P::ServiceError: 'static,
P::ServiceResponse: 'static,
P::ServiceRequest: 'static,
S::Request: From<P::ServiceRequest>,
S::Response: Into<P::ServiceResponse>,
S::Error: Into<P::ServiceError>,
Start up the server, providing the given service on it.
This method will block the current thread until the server is shut down.
pub fn with_handle<F, S>(&self, new_service: F) where
F: Fn(&Handle) -> S + Send + Sync + 'static,
S: NewService + Send + Sync + 'static,
S::Instance: 'static,
P::ServiceError: 'static,
P::ServiceResponse: 'static,
P::ServiceRequest: 'static,
S::Request: From<P::ServiceRequest>,
S::Response: Into<P::ServiceResponse>,
S::Error: Into<P::ServiceError>,
[src]
F: Fn(&Handle) -> S + Send + Sync + 'static,
S: NewService + Send + Sync + 'static,
S::Instance: 'static,
P::ServiceError: 'static,
P::ServiceResponse: 'static,
P::ServiceRequest: 'static,
S::Request: From<P::ServiceRequest>,
S::Response: Into<P::ServiceResponse>,
S::Error: Into<P::ServiceError>,
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
turn used to make a new service instance for each incoming connection.
This method will block the current thread until the server is shut down.
Trait Implementations
Auto Trait Implementations
impl<Kind, P> RefUnwindSafe for TcpServer<Kind, P> where
Kind: RefUnwindSafe,
P: RefUnwindSafe,
Kind: RefUnwindSafe,
P: RefUnwindSafe,
impl<Kind, P> Send for TcpServer<Kind, P> where
Kind: Send,
P: Send + Sync,
Kind: Send,
P: Send + Sync,
impl<Kind, P> Sync for TcpServer<Kind, P> where
Kind: Sync,
P: Send + Sync,
Kind: Sync,
P: Send + Sync,
impl<Kind, P> Unpin for TcpServer<Kind, P> where
Kind: Unpin,
Kind: Unpin,
impl<Kind, P> UnwindSafe for TcpServer<Kind, P> where
Kind: UnwindSafe,
P: RefUnwindSafe,
Kind: UnwindSafe,
P: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,