Struct unix_udp_sock::UdpSocket
source · pub struct UdpSocket { /* private fields */ }
Expand description
Tokio-compatible UDP socket with some useful specializations.
Unlike a standard tokio UDP socket, this allows ECN bits to be read and written on some platforms.
Implementations§
source§impl UdpSocket
impl UdpSocket
sourcepub fn from_std(socket: UdpSocket) -> Result<UdpSocket>
pub fn from_std(socket: UdpSocket) -> Result<UdpSocket>
Creates a new UDP socket from a previously created std::net::UdpSocket
pub fn into_std(self) -> Result<UdpSocket>
sourcepub async fn bind<A: ToSocketAddrs>(addr: A) -> Result<UdpSocket>
pub async fn bind<A: ToSocketAddrs>(addr: A) -> Result<UdpSocket>
create a new UDP socket and attempt to bind to addr
sourcepub fn set_broadcast(&self, broadcast: bool) -> Result<()>
pub fn set_broadcast(&self, broadcast: bool) -> Result<()>
sets the value of SO_BROADCAST for this socket
pub async fn connect<A: ToSocketAddrs>(&self, addrs: A) -> Result<()>
pub async fn join_multicast_v4( &self, multiaddr: Ipv4Addr, interface: Ipv4Addr, ) -> Result<()>
pub async fn join_multicast_v6( &self, multiaddr: &Ipv6Addr, interface: u32, ) -> Result<()>
pub async fn leave_multicast_v4( &self, multiaddr: Ipv4Addr, interface: Ipv4Addr, ) -> Result<()>
pub async fn leave_multicast_v6( &self, multiaddr: &Ipv6Addr, interface: u32, ) -> Result<()>
pub async fn set_multicast_loop_v4(&self, on: bool) -> Result<()>
pub async fn set_multicast_loop_v6(&self, on: bool) -> Result<()>
sourcepub async fn send_to(&self, buf: &[u8], target: SocketAddr) -> Result<usize>
pub async fn send_to(&self, buf: &[u8], target: SocketAddr) -> Result<usize>
Sends data on the socket to the given address. On success, returns the number of bytes written.
calls underlying tokio send_to
sourcepub fn poll_send_to(
&self,
cx: &mut Context<'_>,
buf: &[u8],
target: SocketAddr,
) -> Poll<Result<usize>>
pub fn poll_send_to( &self, cx: &mut Context<'_>, buf: &[u8], target: SocketAddr, ) -> Poll<Result<usize>>
Sends data on the socket to the given address. On success, returns the number of bytes written.
calls underlying tokio poll_send_to
sourcepub async fn send(&self, buf: &[u8]) -> Result<usize>
pub async fn send(&self, buf: &[u8]) -> Result<usize>
Sends data on the socket to the remote address that the socket is connected to.
See tokio send
sourcepub async fn poll_send(
&self,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize>>
pub async fn poll_send( &self, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize>>
Sends data on the socket to the remote address that the socket is connected to.
See tokio poll_send
sourcepub async fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
pub async fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
Receives a single datagram message on the socket. On success, returns the number of bytes read and the origin.
See tokio recv_from
sourcepub fn poll_recv_from(
&self,
cx: &mut Context<'_>,
buf: &mut ReadBuf<'_>,
) -> Poll<Result<SocketAddr>>
pub fn poll_recv_from( &self, cx: &mut Context<'_>, buf: &mut ReadBuf<'_>, ) -> Poll<Result<SocketAddr>>
Receives a single datagram message on the socket. On success, returns the number of bytes read and the origin.
See tokio poll_recv_from
sourcepub async fn recv(&self, buf: &mut [u8]) -> Result<usize>
pub async fn recv(&self, buf: &mut [u8]) -> Result<usize>
Receives a single datagram message on the socket from the remote address to which it is connected. On success, returns the number of bytes read.
See tokio recv
sourcepub fn poll_recv(
&self,
cx: &mut Context<'_>,
buf: &mut ReadBuf<'_>,
) -> Poll<Result<()>>
pub fn poll_recv( &self, cx: &mut Context<'_>, buf: &mut ReadBuf<'_>, ) -> Poll<Result<()>>
Receives a single datagram message on the socket from the remote address to which it is connected. On success, returns the number of bytes read.
See tokio poll_recv
sourcepub async fn send_mmsg<B: AsPtr<u8>>(
&self,
state: &UdpState,
transmits: &[Transmit<B>],
) -> Result<usize, Error>
pub async fn send_mmsg<B: AsPtr<u8>>( &self, state: &UdpState, transmits: &[Transmit<B>], ) -> Result<usize, Error>
Calls syscall sendmmsg
. With a given state
configured GSO and
transmits
with information on the data and metadata about outgoing packets.
sourcepub async fn send_msg<B: AsPtr<u8>>(
&self,
state: &UdpState,
transmits: Transmit<B>,
) -> Result<usize>
pub async fn send_msg<B: AsPtr<u8>>( &self, state: &UdpState, transmits: Transmit<B>, ) -> Result<usize>
Calls syscall sendmsg
. With a given state
configured GSO and
transmit
with information on the data and metadata about outgoing packet.
sourcepub async fn recv_mmsg(
&self,
bufs: &mut [IoSliceMut<'_>],
meta: &mut [RecvMeta],
) -> Result<usize>
pub async fn recv_mmsg( &self, bufs: &mut [IoSliceMut<'_>], meta: &mut [RecvMeta], ) -> Result<usize>
async version of recvmmsg
sourcepub async fn recv_msg(&self, buf: &mut [u8]) -> Result<RecvMeta>
pub async fn recv_msg(&self, buf: &mut [u8]) -> Result<RecvMeta>
recv_msg
is similar to recv_from
but returns extra information
about the packet in RecvMeta
.
sourcepub fn poll_send_mmsg<B: AsPtr<u8>>(
&mut self,
state: &UdpState,
cx: &mut Context<'_>,
transmits: &[Transmit<B>],
) -> Poll<Result<usize>>
pub fn poll_send_mmsg<B: AsPtr<u8>>( &mut self, state: &UdpState, cx: &mut Context<'_>, transmits: &[Transmit<B>], ) -> Poll<Result<usize>>
calls sendmmsg
sourcepub fn poll_send_msg<B: AsPtr<u8>>(
&self,
state: &UdpState,
cx: &mut Context<'_>,
transmits: Transmit<B>,
) -> Poll<Result<usize>>
pub fn poll_send_msg<B: AsPtr<u8>>( &self, state: &UdpState, cx: &mut Context<'_>, transmits: Transmit<B>, ) -> Poll<Result<usize>>
calls sendmsg
sourcepub fn poll_recv_msg(
&self,
cx: &mut Context<'_>,
buf: &mut IoSliceMut<'_>,
) -> Poll<Result<RecvMeta>>
pub fn poll_recv_msg( &self, cx: &mut Context<'_>, buf: &mut IoSliceMut<'_>, ) -> Poll<Result<RecvMeta>>
calls recvmsg
sourcepub fn poll_recv_mmsg(
&self,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>],
meta: &mut [RecvMeta],
) -> Poll<Result<usize>>
pub fn poll_recv_mmsg( &self, cx: &mut Context<'_>, bufs: &mut [IoSliceMut<'_>], meta: &mut [RecvMeta], ) -> Poll<Result<usize>>
calls recvmmsg
sourcepub fn local_addr(&self) -> Result<SocketAddr>
pub fn local_addr(&self) -> Result<SocketAddr>
Returns local address this socket is bound to.