Skip to main content

TcpSocket

Struct TcpSocket 

Source
pub struct TcpSocket { /* private fields */ }
Available on crate feature net only.
Expand description

A TCP socket that has not yet been converted to a TcpStream or TcpListener.

Implementations§

Source§

impl TcpSocket

Source

pub async fn new_v4() -> Result<TcpSocket, Error>

Creates a new socket configured for IPv4.

Source

pub async fn new_v6() -> Result<TcpSocket, Error>

Creates a new socket configured for IPv6.

Source

pub fn set_keepalive(&self, keepalive: bool) -> Result<(), Error>

Sets value for the SO_KEEPALIVE option on this socket.

Source

pub fn keepalive(&self) -> Result<bool, Error>

Gets the value of the SO_KEEPALIVE option on this socket.

Source

pub fn set_reuseaddr(&self, reuseaddr: bool) -> Result<(), Error>

Allows the socket to bind to an in-use address.

Source

pub fn reuseaddr(&self) -> Result<bool, Error>

Retrieves the value set for SO_REUSEADDR on this socket.

Source

pub fn set_send_buffer_size(&self, size: u32) -> Result<(), Error>

Sets the size of the TCP send buffer on this socket.

On most operating systems, this sets the SO_SNDBUF socket option.

Source

pub fn send_buffer_size(&self) -> Result<u32, Error>

Returns the size of the TCP send buffer for this socket.

On most operating systems, this is the value of the SO_SNDBUF socket option.

Source

pub fn set_recv_buffer_size(&self, size: u32) -> Result<(), Error>

Sets the size of the TCP receive buffer on this socket.

On most operating systems, this sets the SO_RCVBUF socket option.

Source

pub fn recv_buffer_size(&self) -> Result<u32, Error>

Returns the size of the TCP receive buffer for this socket.

On most operating systems, this is the value of the SO_RCVBUF socket option.

Source

pub fn set_zero_linger(&self) -> Result<(), Error>

Sets a linger duration of zero on this socket by setting the SO_LINGER option.

Source

pub fn linger(&self) -> Result<Option<Duration>, Error>

Reads the linger duration for this socket by getting the SO_LINGER option.

Source

pub fn set_nodelay(&self, nodelay: bool) -> Result<(), Error>

Sets the value of the TCP_NODELAY option on this socket.

If set, this option disables the Nagle algorithm. This means that segments are always sent as soon as possible, even if there is only a small amount of data. When not set, data is buffered until there is a sufficient amount to send out, thereby avoiding the frequent sending of small packets.

Source

pub fn nodelay(&self) -> Result<bool, Error>

Gets the value of the TCP_NODELAY option on this socket.

For more information about this option, see set_nodelay.

Source

pub fn tos_v4(&self) -> Result<u32, Error>

Available on neither Fuchsia nor Redox OS nor Solaris nor illumos nor Haiku.

Gets the value of the IP_TOS option for this socket.

For more information about this option, see set_tos_v4.

Source

pub fn set_tos_v4(&self, tos: u32) -> Result<(), Error>

Available on neither Fuchsia nor Redox OS nor Solaris nor illumos nor Haiku.

Sets the value for the IP_TOS option on this socket.

This value sets the type-of-service field that is used in every packet sent from this socket.

§Note
Source

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

Gets the local address of this socket.

Source

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

Returns the value of the SO_ERROR option.

Source

pub async fn bind(&self, addr: SocketAddr) -> Result<(), Error>

Binds the socket to the given address.

Source

pub async fn connect(self, addr: SocketAddr) -> Result<TcpStream, Error>

Establishes a TCP connection with a peer at the specified socket address.

The TcpSocket is consumed. Once the connection is established, a connected TcpStream is returned. If the connection fails, the encountered error is returned.

On Windows, the socket should be bound to an address before connecting.

Source

pub async fn listen(self, backlog: i32) -> Result<TcpListener, Error>

Converts the socket into a TcpListener.

backlog defines the maximum number of pending connections that are queued by the operating system at any given time. Connections are removed from the queue with TcpListener::accept. When the queue is full, the operating system will start rejecting connections.

Source

pub fn from_std_stream(stream: TcpStream) -> Result<TcpSocket, Error>

Converts a std::net::TcpStream into a TcpSocket. The provided socket must not have been connected prior to calling this function. This function is typically used together with crates such as [socket2] to configure socket options that are not available on TcpSocket.

Trait Implementations§

Source§

impl AsRawFd for TcpSocket

Source§

fn as_raw_fd(&self) -> *mut c_void

Extracts the raw fd.
Source§

impl AsRawSocket for TcpSocket

Available on Windows only.
Source§

fn as_raw_socket(&self) -> u64

Extracts the raw socket. Read more
Source§

impl AsSocket for TcpSocket

Available on Windows only.
Source§

fn as_socket(&self) -> BorrowedSocket<'_>

Borrows the socket.
Source§

impl Debug for TcpSocket

Source§

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

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

impl FromRawSocket for TcpSocket

Available on Windows only.
Source§

unsafe fn from_raw_socket(sock: u64) -> TcpSocket

Constructs a new I/O object from the specified raw socket. Read more
Source§

impl ToSharedFd<Socket> for TcpSocket

Source§

fn to_shared_fd(&self) -> SharedFd<Socket>

Return a cloned SharedFd.

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
§

impl<T> AsFd for T
where T: AsSocket,

§

fn as_fd(&self) -> BorrowedSocket<'_>

An as_fd function for Winsock, where an Fd is a Socket.
§

impl<T> AsRawFd for T
where T: AsRawSocket,

§

fn as_raw_fd(&self) -> u64

A version of as_raw_fd for use with Winsock API.
§

impl<T> AsRawSocketlike for T
where T: AsRawSocket,

§

fn as_raw_socketlike(&self) -> u64

Returns the raw value.
§

impl<T> AsRawSocketlike for T
where T: AsRawSocket,

§

fn as_raw_socketlike(&self) -> u64

Returns the raw value.
§

impl<T> AsSocketlike for T
where T: AsSocket,

§

fn as_socketlike(&self) -> BorrowedSocket<'_>

Borrows the reference.
§

fn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>
where Target: SocketlikeViewType,

Return a borrowing view of a resource which dereferences to a &Target. Read more
§

impl<T> AsSocketlike for T
where T: AsSocket,

§

fn as_socketlike(&self) -> BorrowedSocket<'_>

Borrows the reference.
§

fn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>
where Target: SocketlikeViewType,

Return a borrowing view of a resource which dereferences to a &Target. 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.

§

impl<T> FromRawFd for T
where T: FromRawSocket,

§

unsafe fn from_raw_fd(raw_fd: u64) -> T

A version of from_raw_fd for use with Winsock API. Read more
§

impl<T> FromRawSocketlike for T
where T: FromRawSocket,

§

unsafe fn from_raw_socketlike(raw: u64) -> T

Constructs Self from the raw value.
§

impl<T> FromRawSocketlike for T
where T: FromRawSocket,

§

unsafe fn from_raw_socketlike(raw: u64) -> T

Constructs Self from the raw value.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> Ungil for T
where T: Send,