## TcpListener

# Struct TcpListener

Source

    pub struct TcpListener { /* private fields */ }

Expand description

A structure representing a socket server

## §Examples

    use mio::{Events, Interest, Poll, Token};
    use mio::net::TcpListener;
    use std::time::Duration;

    let mut listener = TcpListener::bind("127.0.0.1:34255".parse()?)?;

    let mut poll = Poll::new()?;
    let mut events = Events::with_capacity(128);

    // Register the socket with `Poll`
    poll.registry().register(&mut listener, Token(0), Interest::READABLE)?;

    poll.poll(&mut events, Some(Duration::from_millis(100)))?;

    // There may be a socket ready to be accepted

## Implementations§

Source§

### impl TcpListener

Source

#### pub fn bind(addr: SocketAddr) -> Result<TcpListener>

Convenience method to bind a new TCP listener to the specified address to receive new connections.

This function will take the following steps:

1. Create a new TCP socket.
2. Set the `SO_REUSEADDR` option on the socket on Unix.
3. Bind the socket to the specified address.
4. Calls `listen` on the socket to prepare it to receive new connections.

Source

#### pub fn from_std(listener: TcpListener) -> TcpListener

Creates a new `TcpListener` from a standard `net::TcpListener`.

This function is intended to be used to wrap a TCP listener from the standard library in the Mio equivalent. The conversion assumes nothing about the underlying listener; it is left up to the user to set it into non-blocking mode.

Source

#### pub fn accept(&self) -> Result<(TcpStream, SocketAddr)>

Accepts a new `TcpStream`.

This may return an `Err(e)` where `e.kind()` is `io::ErrorKind::WouldBlock`. This means a stream may be ready at a later point and one should wait for an event before calling `accept` again.

If an accepted stream is returned, the remote address of the peer is returned along with it.

Source

#### pub fn local_addr(&self) -> Result<SocketAddr>

Returns the local socket address of this listener.

Source

#### pub fn set_ttl(&self, ttl: u32) -> Result<()>

Sets the value for the `IP_TTL` option on this socket.

This value sets the time-to-live field that is used in every packet sent from this socket.

Source

#### pub fn ttl(&self) -> Result<u32>

Gets the value of the `IP_TTL` option for this socket.

For more information about this option, see `set_ttl`.

Source

#### pub fn take_error(&self) -> Result<Option<Error>>

Get the value of the `SO_ERROR` option on this socket.

This will retrieve the stored error in the underlying socket, clearing the field in the process. This can be useful for checking errors between calls.

## Trait Implementations§

Source§

### impl AsFd for TcpListener

Source§

#### fn as_fd(&self) -> BorrowedFd<'_>

Borrows the file descriptor. Read more
Source§

### impl AsRawFd for TcpListener

Source§

#### fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor. Read more
Source§

### impl Debug for TcpListener

Source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

### impl From<OwnedFd> for TcpListener

Source§

#### fn from(fd: OwnedFd) -> Self

Converts a `RawFd` to a `TcpListener`.

##### §Notes

The caller is responsible for ensuring that the socket is in non-blocking mode.

Source§

### impl From<TcpListener> for OwnedFd

Source§

#### fn from(tcp_listener: TcpListener) -> Self

Converts to this type from the input type.
Source§

### impl From<TcpListener> for TcpListener

Source§

#### fn from(listener: TcpListener) -> Self

Converts to this type from the input type.
Source§

### impl FromRawFd for TcpListener

Source§

#### unsafe fn from_raw_fd(fd: RawFd) -> TcpListener

Converts a `RawFd` to a `TcpListener`.

##### §Notes

The caller is responsible for ensuring that the socket is in non-blocking mode.

Source§

### impl IntoRawFd for TcpListener

Source§

#### fn into_raw_fd(self) -> RawFd

Consumes this object, returning the raw underlying file descriptor. Read more
Source§

### impl Source for TcpListener

Source§

#### fn register( &mut self, registry: &Registry, token: Token, interests: Interest, ) -> Result<()>

Register `self` with the given `Registry` instance. Read more
Source§

#### fn reregister( &mut self, registry: &Registry, token: Token, interests: Interest, ) -> Result<()>

Re-register `self` with the given `Registry` instance. Read more
Source§

#### fn deregister(&mut self, registry: &Registry) -> Result<()>

Deregister `self` from the given `Registry` instance. Read more

## Auto Trait Implementations§

§

### impl !Freeze for TcpListener

§

### impl RefUnwindSafe for TcpListener

§

### impl Send for TcpListener

§

### impl Sync for TcpListener

§

### impl Unpin for TcpListener

§

### impl UnwindSafe for TcpListener

## Blanket Implementations§

Source§

### impl<T> Any for T
where T: 'static + ?Sized,

Source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
Source§

### impl<T> Borrow<T> for T
where T: ?Sized,

Source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

### impl<T> From<T> for T

Source§

#### fn from(t: T) -> T

Returns the argument unchanged.

Source§

### impl<T, U> Into<U> for T
where U: From<T>,

Source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

Source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

#### type Error = Infallible

The type returned in the event of a conversion error.
Source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.