Struct tokio::net::tcp::OwnedReadHalf [−][src]
Owned read half of a TcpStream
, created by into_split
.
Reading from an OwnedReadHalf
is usually done using the convenience methods found
on the AsyncReadExt
trait. Examples import this trait through the prelude.
Implementations
impl OwnedReadHalf
[src]
pub fn reunite(self, other: OwnedWriteHalf) -> Result<TcpStream, ReuniteError>
[src]
Attempts to put the two halves of a TcpStream
back together and
recover the original socket. Succeeds only if the two halves
originated from the same call to into_split
.
pub fn poll_peek(
&mut self,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
[src]
&mut self,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
Attempt to receive data on the socket, without removing that data from the queue, registering the current task for wakeup if data is not yet available.
See the TcpStream::poll_peek
level documenation for more details.
Examples
use tokio::io; use tokio::net::TcpStream; use futures::future::poll_fn; #[tokio::main] async fn main() -> io::Result<()> { let stream = TcpStream::connect("127.0.0.1:8000").await?; let (mut read_half, _) = stream.into_split(); let mut buf = [0; 10]; poll_fn(|cx| { read_half.poll_peek(cx, &mut buf) }).await?; Ok(()) }
pub async fn peek(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
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 peeked.
See the TcpStream::peek
level documenation for more details.
Examples
use tokio::net::TcpStream; use tokio::prelude::*; use std::error::Error; #[tokio::main] async fn main() -> Result<(), Box<dyn Error>> { // Connect to a peer let stream = TcpStream::connect("127.0.0.1:8080").await?; let (mut read_half, _) = stream.into_split(); let mut b1 = [0; 10]; let mut b2 = [0; 10]; // Peek at the data let n = read_half.peek(&mut b1).await?; // Read the data assert_eq!(n, read_half.read(&mut b2[..n]).await?); assert_eq!(&b1[..n], &b2[..n]); Ok(()) }
The read
method is defined on the AsyncReadExt
trait.
Trait Implementations
impl AsRef<TcpStream> for OwnedReadHalf
[src]
impl AsyncRead for OwnedReadHalf
[src]
unsafe fn prepare_uninitialized_buffer(&self, _: &mut [MaybeUninit<u8>]) -> bool
[src]
fn poll_read(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize>>
fn poll_read_buf<B: BufMut>(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut B
) -> Poll<Result<usize>> where
Self: Sized,
[src]
self: Pin<&mut Self>,
cx: &mut Context<'_>,
buf: &mut B
) -> Poll<Result<usize>> where
Self: Sized,
impl Debug for OwnedReadHalf
[src]
Auto Trait Implementations
impl !RefUnwindSafe for OwnedReadHalf
impl Send for OwnedReadHalf
impl Sync for OwnedReadHalf
impl Unpin for OwnedReadHalf
impl !UnwindSafe for OwnedReadHalf
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,