mio::net

Struct TcpListener

Source
pub struct TcpListener { /* private fields */ }
Available on crate feature net only.
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 in 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<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§

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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 16 bytes