pub struct ReadHalf<'a>(/* private fields */);
Available on crate feature
tcp
only.Expand description
Read half of a TcpStream
.
Implementations§
Source§impl ReadHalf<'_>
impl ReadHalf<'_>
Sourcepub fn poll_peek(
&mut self,
cx: &mut Context<'_>,
buf: &mut [u8],
) -> Poll<Result<usize>>
pub fn poll_peek( &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 mut stream = TcpStream::connect("127.0.0.1:8000").await?;
let (mut read_half, _) = stream.split();
let mut buf = [0; 10];
poll_fn(|cx| {
read_half.poll_peek(cx, &mut buf)
}).await?;
Ok(())
}
Sourcepub async fn peek(&mut self, buf: &mut [u8]) -> Result<usize>
pub async fn peek(&mut 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 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 mut stream = TcpStream::connect("127.0.0.1:8080").await?;
let (mut read_half, _) = stream.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(())
}
Trait Implementations§
Source§impl AsyncRead for ReadHalf<'_>
impl AsyncRead for ReadHalf<'_>
Source§unsafe fn prepare_uninitialized_buffer(&self, _: &mut [MaybeUninit<u8>]) -> bool
unsafe fn prepare_uninitialized_buffer(&self, _: &mut [MaybeUninit<u8>]) -> bool
Prepares an uninitialized buffer to be safe to pass to
read
. Returns
true
if the supplied buffer was zeroed out. Read moreAuto Trait Implementations§
impl<'a> Freeze for ReadHalf<'a>
impl<'a> !RefUnwindSafe for ReadHalf<'a>
impl<'a> Send for ReadHalf<'a>
impl<'a> Sync for ReadHalf<'a>
impl<'a> Unpin for ReadHalf<'a>
impl<'a> !UnwindSafe for ReadHalf<'a>
Blanket Implementations§
Source§impl<R> AsyncReadExt for R
impl<R> AsyncReadExt for R
Source§fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>where
Self: Unpin,
Available on crate feature
io-util
only.Pull some bytes from this source into the specified buffer,
returning how many bytes were read. Read more
Source§fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
fn read_buf<'a, B>(&'a mut self, buf: &'a mut B) -> ReadBuf<'a, Self, B>
Available on crate feature
io-util
only.Pull some bytes from this source into the specified buffer,
advancing the buffer’s internal cursor. Read more
Source§fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
fn read_exact<'a>(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>where
Self: Unpin,
Available on crate feature
io-util
only.Read the exact number of bytes required to fill
buf
. Read moreSource§fn read_u8<'a>(&'a mut self) -> ReadU8<&'a mut Self>where
Self: Unpin,
fn read_u8<'a>(&'a mut self) -> ReadU8<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an unsigned 8 bit integer from the underlying reader. Read more
Source§fn read_i8<'a>(&'a mut self) -> ReadI8<&'a mut Self>where
Self: Unpin,
fn read_i8<'a>(&'a mut self) -> ReadI8<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads a signed 8 bit integer from the underlying reader. Read more
Source§fn read_u16<'a>(&'a mut self) -> ReadU16<&'a mut Self>where
Self: Unpin,
fn read_u16<'a>(&'a mut self) -> ReadU16<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an unsigned 16-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_i16<'a>(&'a mut self) -> ReadI16<&'a mut Self>where
Self: Unpin,
fn read_i16<'a>(&'a mut self) -> ReadI16<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads a signed 16-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_u32<'a>(&'a mut self) -> ReadU32<&'a mut Self>where
Self: Unpin,
fn read_u32<'a>(&'a mut self) -> ReadU32<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an unsigned 32-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_i32<'a>(&'a mut self) -> ReadI32<&'a mut Self>where
Self: Unpin,
fn read_i32<'a>(&'a mut self) -> ReadI32<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads a signed 32-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_u64<'a>(&'a mut self) -> ReadU64<&'a mut Self>where
Self: Unpin,
fn read_u64<'a>(&'a mut self) -> ReadU64<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an unsigned 64-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_i64<'a>(&'a mut self) -> ReadI64<&'a mut Self>where
Self: Unpin,
fn read_i64<'a>(&'a mut self) -> ReadI64<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an signed 64-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_u128<'a>(&'a mut self) -> ReadU128<&'a mut Self>where
Self: Unpin,
fn read_u128<'a>(&'a mut self) -> ReadU128<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an unsigned 128-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_i128<'a>(&'a mut self) -> ReadI128<&'a mut Self>where
Self: Unpin,
fn read_i128<'a>(&'a mut self) -> ReadI128<&'a mut Self>where
Self: Unpin,
Available on crate feature
io-util
only.Reads an signed 128-bit integer in big-endian order from the
underlying reader. Read more
Source§fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where
Self: Unpin,
fn read_to_end<'a>(&'a mut self, buf: &'a mut Vec<u8>) -> ReadToEnd<'a, Self>where
Self: Unpin,
Available on crate feature
io-util
only.Read all bytes until EOF in this source, placing them into
buf
. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more