pub struct TcpSocketHalf { /* private fields */ }
Implementations§
Source§impl TcpSocketHalf
impl TcpSocketHalf
pub fn channel( max_buffer_size: usize, addr1: SocketAddr, addr2: SocketAddr, ) -> (TcpSocketHalf, TcpSocketHalf)
pub fn is_active(&self) -> bool
pub fn close(&self) -> Result<()>
Source§impl TcpSocketHalf
impl TcpSocketHalf
pub fn split(self) -> (TcpSocketHalfTx, TcpSocketHalfRx)
pub fn combine(tx: TcpSocketHalfTx, rx: TcpSocketHalfRx) -> Self
Trait Implementations§
Source§impl Debug for TcpSocketHalf
impl Debug for TcpSocketHalf
Source§impl VirtualConnectedSocket for TcpSocketHalf
impl VirtualConnectedSocket for TcpSocketHalf
Source§fn set_linger(&mut self, _linger: Option<Duration>) -> Result<()>
fn set_linger(&mut self, _linger: Option<Duration>) -> Result<()>
Determines how long the socket will remain in a TIME_WAIT
after it disconnects (only the one that initiates the close will
be in a TIME_WAIT state thus the clients should always do this rather
than the server)
Source§fn linger(&self) -> Result<Option<Duration>>
fn linger(&self) -> Result<Option<Duration>>
Returns how long the socket will remain in a TIME_WAIT
after it disconnects
Source§fn try_send(&mut self, data: &[u8]) -> Result<usize>
fn try_send(&mut self, data: &[u8]) -> Result<usize>
Tries to send out a datagram or stream of bytes on this socket
fn try_flush(&mut self) -> Result<()>
Source§impl VirtualIoSource for TcpSocketHalf
impl VirtualIoSource for TcpSocketHalf
Source§fn remove_handler(&mut self)
fn remove_handler(&mut self)
Removes a previously registered waker using a token
Source§impl VirtualSocket for TcpSocketHalf
impl VirtualSocket for TcpSocketHalf
Source§fn set_ttl(&mut self, ttl: u32) -> Result<()>
fn set_ttl(&mut self, ttl: u32) -> Result<()>
Sets how many network hops the packets are permitted for new connections
Source§fn ttl(&self) -> Result<u32>
fn ttl(&self) -> Result<u32>
Returns the maximum number of network hops before packets are dropped
Source§fn addr_local(&self) -> Result<SocketAddr>
fn addr_local(&self) -> Result<SocketAddr>
Returns the local address for this socket
Source§fn status(&self) -> Result<SocketStatus>
fn status(&self) -> Result<SocketStatus>
Returns the status/state of the socket
Source§fn set_handler(
&mut self,
handler: Box<dyn InterestHandler + Send + Sync>,
) -> Result<()>
fn set_handler( &mut self, handler: Box<dyn InterestHandler + Send + Sync>, ) -> Result<()>
Registers a waker for when this connection is ready to receive
more data. Uses a stack machine which means more than one waker
can be registered
Source§impl VirtualTcpSocket for TcpSocketHalf
impl VirtualTcpSocket for TcpSocketHalf
Source§fn set_recv_buf_size(&mut self, size: usize) -> Result<()>
fn set_recv_buf_size(&mut self, size: usize) -> Result<()>
Sets the receive buffer size which acts as a trottle for how
much data is buffered on this side of the pipe
Source§fn recv_buf_size(&self) -> Result<usize>
fn recv_buf_size(&self) -> Result<usize>
Size of the receive buffer that holds all data that has not
yet been read
Source§fn set_send_buf_size(&mut self, size: usize) -> Result<()>
fn set_send_buf_size(&mut self, size: usize) -> Result<()>
Sets the size of the send buffer which will hold the bytes of
data while they are being sent over to the peer
Source§fn send_buf_size(&self) -> Result<usize>
fn send_buf_size(&self) -> Result<usize>
Size of the send buffer that holds all data that is currently
being transmitted.
Source§fn set_nodelay(&mut self, _reuse: bool) -> Result<()>
fn set_nodelay(&mut self, _reuse: bool) -> Result<()>
When NO_DELAY is set the data that needs to be transmitted to
the peer is sent immediately rather than waiting for a bigger
batch of data, this reduces latency but increases encapsulation
overhead.
Source§fn nodelay(&self) -> Result<bool>
fn nodelay(&self) -> Result<bool>
Indicates if the NO_DELAY flag is set which means that data
is immediately sent to the peer without waiting. This reduces
latency but increases encapsulation overhead.
Source§fn set_keepalive(&mut self, _keepalive: bool) -> Result<()>
fn set_keepalive(&mut self, _keepalive: bool) -> Result<()>
When KEEP_ALIVE is set the connection will periodically send
an empty data packet to the server to make sure the connection
stays alive.
Source§fn keepalive(&self) -> Result<bool>
fn keepalive(&self) -> Result<bool>
Indicates if the KEEP_ALIVE flag is set which means that the
socket will periodically send an empty data packet to keep
the connection alive.
Source§fn set_dontroute(&mut self, _keepalive: bool) -> Result<()>
fn set_dontroute(&mut self, _keepalive: bool) -> Result<()>
When DONT_ROUTE is set the packet will be sent directly
to the interface without passing through the routing logic.
Source§fn dontroute(&self) -> Result<bool>
fn dontroute(&self) -> Result<bool>
Indicates if the packet will pass straight through to
the interface bypassing the routing logic.
Source§fn addr_peer(&self) -> Result<SocketAddr>
fn addr_peer(&self) -> Result<SocketAddr>
Returns the address (IP and Port) of the peer socket that this
is conencted to
Auto Trait Implementations§
impl Freeze for TcpSocketHalf
impl RefUnwindSafe for TcpSocketHalf
impl Send for TcpSocketHalf
impl Sync for TcpSocketHalf
impl Unpin for TcpSocketHalf
impl UnwindSafe for TcpSocketHalf
Blanket Implementations§
Source§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