TcpStream

Struct TcpStream 

Source
pub struct TcpStream(/* private fields */);
Expand description

A TCP stream between a local and a remote socket.

A TCP Stream can either be created by connecting to an endpoint, via the TcpStream::connect method, or by super::TcpListener::accepting a connection from a super::TcpListener.

Reading and writing to a TcpStream is usually done by using the crate::io::Read and crate::io::Write traits.

Implementations§

Source§

impl TcpStream

Source

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

Opens a TCP connection to a remote host at the specified address.

Source

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

Returns the local address that this stream is bound to.

Source

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

Returns the value of the SO_ERROR option.

Source

pub fn peer_addr(&self) -> Result<SocketAddr>

Returns the remote address that this stream is connected to.

Source

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

Gets the value of the TCP_NODELAY option on this socket.

Source

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

Sets the value of the TCP_NODELAY option on this socket.

Source

pub async fn peek(&self, buf: &mut [u8]) -> Result<usize>

Receives data on the socket from the remote address to which it is connected, without removing that data from the queue. On success, returns the number of bytes read.

Source

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

Gets the value of the IP_TTL option on this socket.

Source

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

Sets the value of the IP_TTL option on this socket.

Trait Implementations§

Source§

impl AsFd for TcpStream

Source§

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

Borrows the file descriptor. Read more
Source§

impl AsRawFd for TcpStream

Source§

fn as_raw_fd(&self) -> RawFd

Extracts the raw file descriptor. Read more
Source§

impl Debug for TcpStream

Source§

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

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

impl From<TcpStream> for TcpStream

Source§

fn from(stream: TcpStream) -> Self

Converts to this type from the input type.
Source§

impl Read for TcpStream

Source§

async fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Reads data from the stream into the provided buffer.
Source§

fn read_vectored( &mut self, bufs: &mut [IoSliceMut<'_>], ) -> impl Future<Output = Result<usize>>

Source§

fn is_read_vectored(&self) -> bool

Source§

fn read_to_end( &mut self, buf: &mut Vec<u8>, ) -> impl Future<Output = Result<usize>>

Source§

fn read_to_string(&mut self) -> impl Future<Output = Result<String>>

Source§

fn read_exact(&mut self, buf: &mut [u8]) -> impl Future<Output = Result<()>>

Source§

impl Unwrap for TcpStream

Source§

type StdImpl = TcpStream

Source§

type TokioImpl = TcpStream

Source§

fn unwrap_std(self) -> Self::StdImpl

Unwraps the std underlying implementation of the MaybeFut type.
Source§

fn unwrap_tokio(self) -> Self::TokioImpl

Unwraps the tokio underlying implementation of the MaybeFut type.
Source§

fn unwrap_std_ref(&self) -> &Self::StdImpl

Unwraps the std underlying implementation of the MaybeFut type as a reference.
Source§

fn unwrap_tokio_ref(&self) -> &Self::TokioImpl

Unwraps the tokio underlying implementation of the MaybeFut type as a reference.
Source§

fn unwrap_std_mut(&mut self) -> &mut Self::StdImpl

Unwraps the std underlying implementation of the MaybeFut type as a mutable reference.
Source§

fn unwrap_tokio_mut(&mut self) -> &mut Self::TokioImpl

Unwraps the tokio underlying implementation of the MaybeFut type as a mutable reference.
Source§

fn get_std(self) -> Option<Self::StdImpl>

Safely unwraps the std underlying implementation of the MaybeFut type.
Source§

fn get_tokio(self) -> Option<Self::TokioImpl>

Safely unwraps the tokio underlying implementation of the MaybeFut type.
Source§

fn get_std_ref(&self) -> Option<&Self::StdImpl>

Safely unwraps the std underlying implementation of the MaybeFut type as a reference.
Source§

fn get_tokio_ref(&self) -> Option<&Self::TokioImpl>

Safely unwraps the tokio underlying implementation of the MaybeFut type as a reference.
Source§

fn get_std_mut(&mut self) -> Option<&mut Self::StdImpl>

Safely unwraps the std underlying implementation of the MaybeFut type as a mutable reference.
Source§

fn get_tokio_mut(&mut self) -> Option<&mut Self::TokioImpl>

Safely unwraps the tokio underlying implementation of the MaybeFut type as a mutable reference.
Source§

impl Write for TcpStream

Source§

async fn write(&mut self, buf: &[u8]) -> Result<usize>

Writes a buffer into this writer, returning how many bytes were successfully written.
Source§

async fn flush(&mut self) -> Result<()>

Flushes the output streamer, ensuring that all intermediately buffered contents reach their destination.
Source§

fn write_vectored( &mut self, bufs: &[IoSlice<'_>], ) -> impl Future<Output = Result<usize>>

Like write, except that it writes from a slice of buffers.
Source§

fn write_all(&mut self, buf: &[u8]) -> impl Future<Output = Result<()>>

Attempts to write an entire buffer into this writer.

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.