pub struct AsyncSocket { /* private fields */ }
Expand description
Async socket. Provides cross-platform async adapter for system’s socket.
Implementations§
Source§impl AsyncSocket
impl AsyncSocket
Sourcepub fn new(socket_option: SocketOption) -> Result<AsyncSocket>
pub fn new(socket_option: SocketOption) -> Result<AsyncSocket>
Constructs a new AsyncSocket.
Sourcepub async fn send_to(&self, buf: &[u8], target: SocketAddr) -> Result<usize>
pub async fn send_to(&self, buf: &[u8], target: SocketAddr) -> Result<usize>
Send packet to target.
Sourcepub async fn receive_from(
&self,
buf: &mut Vec<u8>,
) -> Result<(usize, SocketAddr)>
pub async fn receive_from( &self, buf: &mut Vec<u8>, ) -> Result<(usize, SocketAddr)>
Receive packet with sender address.
Sourcepub async fn write(&self, buf: &[u8]) -> Result<usize>
pub async fn write(&self, buf: &[u8]) -> Result<usize>
Write data to the socket and send to the target. Return how many bytes were written.
Sourcepub async fn read(&self, buf: &mut Vec<u8>) -> Result<usize>
pub async fn read(&self, buf: &mut Vec<u8>) -> Result<usize>
Read data from the socket. Return how many bytes were read.
Sourcepub async fn bind(&self, addr: SocketAddr) -> Result<()>
pub async fn bind(&self, addr: SocketAddr) -> Result<()>
Bind socket to address.
Sourcepub async fn set_receive_timeout(&self, timeout: Option<Duration>) -> Result<()>
pub async fn set_receive_timeout(&self, timeout: Option<Duration>) -> Result<()>
Set receive timeout.
Sourcepub async fn set_ttl(&self, ttl: u32, ip_version: IpVersion) -> Result<()>
pub async fn set_ttl(&self, ttl: u32, ip_version: IpVersion) -> Result<()>
Set TTL or Hop Limit.
Sourcepub async fn connect(&self, addr: SocketAddr) -> Result<()>
pub async fn connect(&self, addr: SocketAddr) -> Result<()>
Initiate TCP connection.
Sourcepub async fn accept(&self) -> Result<(AsyncSocket, SocketAddr)>
pub async fn accept(&self) -> Result<(AsyncSocket, SocketAddr)>
Accept TCP connection.
Sourcepub async fn peer_addr(&self) -> Result<SocketAddr>
pub async fn peer_addr(&self) -> Result<SocketAddr>
Get peer address.
Sourcepub async fn local_addr(&self) -> Result<SocketAddr>
pub async fn local_addr(&self) -> Result<SocketAddr>
Get local address.
Sourcepub async fn connect_timeout(
&self,
addr: &SocketAddr,
timeout: Duration,
) -> Result<()>
pub async fn connect_timeout( &self, addr: &SocketAddr, timeout: Duration, ) -> Result<()>
Initiate a connection on this socket to the specified address, only only waiting for a certain period of time for the connection to be established. The non-blocking state of the socket is overridden by this function.
Sourcepub async fn set_nonblocking(&self, nonblocking: bool) -> Result<()>
pub async fn set_nonblocking(&self, nonblocking: bool) -> Result<()>
Set the value of the SO_BROADCAST
option for this socket.
When enabled, this socket is allowed to send packets to a broadcast address.
Sourcepub async fn set_broadcast(&self, broadcast: bool) -> Result<()>
pub async fn set_broadcast(&self, broadcast: bool) -> Result<()>
Set the value of the SO_BROADCAST
option for this socket.
When enabled, this socket is allowed to send packets to a broadcast address.
Sourcepub async fn get_error(&self) -> Result<Option<Error>>
pub async fn get_error(&self) -> Result<Option<Error>>
Get the value of the SO_ERROR
option on this socket.
Sourcepub async fn set_keepalive(&self, keepalive: bool) -> Result<()>
pub async fn set_keepalive(&self, keepalive: bool) -> Result<()>
Set value for the SO_KEEPALIVE
option on this socket.
Enable sending of keep-alive messages on connection-oriented sockets.
Sourcepub async fn set_receive_buffer_size(&self, size: usize) -> Result<()>
pub async fn set_receive_buffer_size(&self, size: usize) -> Result<()>
Set value for the SO_RCVBUF
option on this socket.
Changes the size of the operating system’s receive buffer associated with the socket.
Sourcepub async fn set_reuse_address(&self, reuse: bool) -> Result<()>
pub async fn set_reuse_address(&self, reuse: bool) -> Result<()>
Set value for the SO_REUSEADDR
option on this socket.
This indicates that futher calls to bind
may allow reuse of local addresses.
Sourcepub async fn set_send_buffer_size(&self, size: usize) -> Result<()>
pub async fn set_send_buffer_size(&self, size: usize) -> Result<()>
Set value for the SO_SNDBUF
option on this socket.
Changes the size of the operating system’s send buffer associated with the socket.
Sourcepub async fn set_send_timeout(&self, duration: Option<Duration>) -> Result<()>
pub async fn set_send_timeout(&self, duration: Option<Duration>) -> Result<()>
Set value for the SO_SNDTIMEO
option on this socket.
If timeout
is None
, then write
and send
calls will block indefinitely.
Sourcepub async fn set_nodelay(&self, nodelay: bool) -> Result<()>
pub async fn set_nodelay(&self, nodelay: bool) -> Result<()>
Set the value of the TCP_NODELAY
option on this socket.
If set, segments are always sent as soon as possible, even if there is only a small amount of data.
Trait Implementations§
Source§impl Clone for AsyncSocket
impl Clone for AsyncSocket
Source§fn clone(&self) -> AsyncSocket
fn clone(&self) -> AsyncSocket
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more