Skip to main content

ListenOptions

Struct ListenOptions 

Source
pub struct ListenOptions {
    pub backlog: i32,
    pub reuse_port: bool,
    pub nodelay: bool,
    pub v6_only: Option<bool>,
    pub recv_buffer: Option<usize>,
    pub send_buffer: Option<usize>,
    pub defer_accept: Option<u32>,
}
Expand description

Options for Socket::tcp_listen.

Fields§

§backlog: i32

Length of the kernel accept queue. The default is default_backlog: the system’s maximum (net.core.somaxconn on Linux, capped at 65535; SOMAXCONN on Windows), so a burst of connections, or 100k idle ones arriving together, isn’t dropped.

§reuse_port: bool

SO_REUSEPORT (Linux, BSD): several sockets may bind the same address and the kernel spreads connections over them. Ignored on Windows.

§nodelay: bool

Set TCP_NODELAY on the listener (Linux and Windows hand it down to accepted sockets).

§v6_only: Option<bool>

IPV6_V6ONLY for IPv6 addresses; None leaves the OS default.

§recv_buffer: Option<usize>

SO_RCVBUF, inherited by accepted sockets.

§send_buffer: Option<usize>

SO_SNDBUF, inherited by accepted sockets.

§defer_accept: Option<u32>

TCP_DEFER_ACCEPT (Linux) in seconds: the kernel hands over a connection only once its first data has arrived (or this long after the handshake), so accepting and reading the first request take one turn. Only for protocols where the client speaks first (HTTP, TLS). None (the default here) leaves it off; ignored on other systems.

Trait Implementations§

Source§

impl Clone for ListenOptions

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ListenOptions

Source§

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

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

impl Default for ListenOptions

Source§

fn default() -> Self

Returns the “default value” for a type. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.