Trait net2::UdpSocketExt
source · pub trait UdpSocketExt {
Show 41 methods
// Required methods
fn set_recv_buffer_size(&self, size: usize) -> Result<()>;
fn recv_buffer_size(&self) -> Result<usize>;
fn set_send_buffer_size(&self, size: usize) -> Result<()>;
fn send_buffer_size(&self) -> Result<usize>;
fn set_broadcast(&self, broadcast: bool) -> Result<()>;
fn broadcast(&self) -> Result<bool>;
fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>;
fn multicast_loop_v4(&self) -> Result<bool>;
fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>;
fn multicast_ttl_v4(&self) -> Result<u32>;
fn set_multicast_hops_v6(&self, hops: u32) -> Result<()>;
fn multicast_hops_v6(&self) -> Result<u32>;
fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>;
fn multicast_loop_v6(&self) -> Result<bool>;
fn set_multicast_if_v4(&self, interface: &Ipv4Addr) -> Result<()>;
fn multicast_if_v4(&self) -> Result<Ipv4Addr>;
fn set_multicast_if_v6(&self, interface: u32) -> Result<()>;
fn multicast_if_v6(&self) -> Result<u32>;
fn set_ttl(&self, ttl: u32) -> Result<()>;
fn ttl(&self) -> Result<u32>;
fn set_unicast_hops_v6(&self, ttl: u32) -> Result<()>;
fn unicast_hops_v6(&self) -> Result<u32>;
fn set_only_v6(&self, only_v6: bool) -> Result<()>;
fn only_v6(&self) -> Result<bool>;
fn join_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>;
fn join_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>;
fn leave_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>;
fn leave_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>;
fn set_read_timeout_ms(&self, val: Option<u32>) -> Result<()>;
fn set_read_timeout(&self, val: Option<Duration>) -> Result<()>;
fn read_timeout_ms(&self) -> Result<Option<u32>>;
fn read_timeout(&self) -> Result<Option<Duration>>;
fn set_write_timeout_ms(&self, val: Option<u32>) -> Result<()>;
fn set_write_timeout(&self, val: Option<Duration>) -> Result<()>;
fn write_timeout_ms(&self) -> Result<Option<u32>>;
fn write_timeout(&self) -> Result<Option<Duration>>;
fn take_error(&self) -> Result<Option<Error>>;
fn connect<A: ToSocketAddrs>(&self, addr: A) -> Result<()>;
fn send(&self, buf: &[u8]) -> Result<usize>;
fn recv(&self, buf: &mut [u8]) -> Result<usize>;
fn set_nonblocking(&self, nonblocking: bool) -> Result<()>;
}
Expand description
Extension methods for the standard UdpSocket
type in std::net
.
Required Methods§
sourcefn set_recv_buffer_size(&self, size: usize) -> Result<()>
fn set_recv_buffer_size(&self, size: usize) -> Result<()>
Sets the value of the SO_RCVBUF
option on this socket.
Changes the size of the operating system’s receive buffer associated with the socket.
sourcefn recv_buffer_size(&self) -> Result<usize>
fn recv_buffer_size(&self) -> Result<usize>
Gets the value of the SO_RCVBUF
option on this socket.
For more information about this option, see set_recv_buffer_size
.
sourcefn set_send_buffer_size(&self, size: usize) -> Result<()>
fn set_send_buffer_size(&self, size: usize) -> Result<()>
Sets the value of the SO_SNDBUF
option on this socket.
Changes the size of the operating system’s send buffer associated with the socket.
sourcefn send_buffer_size(&self) -> Result<usize>
fn send_buffer_size(&self) -> Result<usize>
Gets the value of the SO_SNDBUF
option on this socket.
For more information about this option, see set_send_buffer
.
sourcefn set_broadcast(&self, broadcast: bool) -> Result<()>
fn set_broadcast(&self, broadcast: bool) -> Result<()>
Sets the value of the SO_BROADCAST
option for this socket.
When enabled, this socket is allowed to send packets to a broadcast address.
sourcefn broadcast(&self) -> Result<bool>
fn broadcast(&self) -> Result<bool>
Gets the value of the SO_BROADCAST
option for this socket.
For more information about this option, see
set_broadcast
.
sourcefn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>
fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>
Sets the value of the IP_MULTICAST_LOOP
option for this socket.
If enabled, multicast packets will be looped back to the local socket. Note that this may not have any affect on IPv6 sockets.
sourcefn multicast_loop_v4(&self) -> Result<bool>
fn multicast_loop_v4(&self) -> Result<bool>
Gets the value of the IP_MULTICAST_LOOP
option for this socket.
For more information about this option, see
set_multicast_loop_v4
.
sourcefn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>
fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>
Sets the value of the IP_MULTICAST_TTL
option for this socket.
Indicates the time-to-live value of outgoing multicast packets for this socket. The default value is 1 which means that multicast packets don’t leave the local network unless explicitly requested.
Note that this may not have any affect on IPv6 sockets.
sourcefn multicast_ttl_v4(&self) -> Result<u32>
fn multicast_ttl_v4(&self) -> Result<u32>
Gets the value of the IP_MULTICAST_TTL
option for this socket.
For more information about this option, see
set_multicast_ttl_v4
.
sourcefn set_multicast_hops_v6(&self, hops: u32) -> Result<()>
fn set_multicast_hops_v6(&self, hops: u32) -> Result<()>
Sets the value of the IPV6_MULTICAST_HOPS
option for this socket
sourcefn multicast_hops_v6(&self) -> Result<u32>
fn multicast_hops_v6(&self) -> Result<u32>
Gets the value of the IPV6_MULTICAST_HOPS
option for this socket
sourcefn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>
fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>
Sets the value of the IPV6_MULTICAST_LOOP
option for this socket.
Controls whether this socket sees the multicast packets it sends itself. Note that this may not have any affect on IPv4 sockets.
sourcefn multicast_loop_v6(&self) -> Result<bool>
fn multicast_loop_v6(&self) -> Result<bool>
Gets the value of the IPV6_MULTICAST_LOOP
option for this socket.
For more information about this option, see
set_multicast_loop_v6
.
sourcefn set_multicast_if_v4(&self, interface: &Ipv4Addr) -> Result<()>
fn set_multicast_if_v4(&self, interface: &Ipv4Addr) -> Result<()>
Sets the value of the IP_MULTICAST_IF
option for this socket.
Specifies the interface to use for routing multicast packets.
sourcefn multicast_if_v4(&self) -> Result<Ipv4Addr>
fn multicast_if_v4(&self) -> Result<Ipv4Addr>
Gets the value of the IP_MULTICAST_IF
option for this socket.
Returns the interface to use for routing multicast packets.
sourcefn set_multicast_if_v6(&self, interface: u32) -> Result<()>
fn set_multicast_if_v6(&self, interface: u32) -> Result<()>
Sets the value of the IPV6_MULTICAST_IF
option for this socket.
Specifies the interface to use for routing multicast packets.
sourcefn multicast_if_v6(&self) -> Result<u32>
fn multicast_if_v6(&self) -> Result<u32>
Gets the value of the IPV6_MULTICAST_IF
option for this socket.
Returns the interface to use for routing multicast packets.
sourcefn set_ttl(&self, ttl: u32) -> Result<()>
fn set_ttl(&self, ttl: u32) -> Result<()>
Sets the value for the IP_TTL
option on this socket.
This is the same as TcpStreamExt::set_ttl
.
sourcefn ttl(&self) -> Result<u32>
fn ttl(&self) -> Result<u32>
Gets the value of the IP_TTL
option for this socket.
For more information about this option, see
TcpStreamExt::set_ttl
.
sourcefn set_unicast_hops_v6(&self, ttl: u32) -> Result<()>
fn set_unicast_hops_v6(&self, ttl: u32) -> Result<()>
Sets the value for the IPV6_UNICAST_HOPS
option on this socket.
Specifies the hop limit for ipv6 unicast packets
sourcefn unicast_hops_v6(&self) -> Result<u32>
fn unicast_hops_v6(&self) -> Result<u32>
Gets the value of the IPV6_UNICAST_HOPS
option for this socket.
Specifies the hop limit for ipv6 unicast packets
sourcefn set_only_v6(&self, only_v6: bool) -> Result<()>
fn set_only_v6(&self, only_v6: bool) -> Result<()>
Sets the value for the IPV6_V6ONLY
option on this socket.
For more information about this option, see
TcpStreamExt::set_only_v6
.
sourcefn only_v6(&self) -> Result<bool>
fn only_v6(&self) -> Result<bool>
Gets the value of the IPV6_V6ONLY
option for this socket.
For more information about this option, see
TcpStreamExt::set_only_v6
.
sourcefn join_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
fn join_multicast_v4( &self, multiaddr: &Ipv4Addr, interface: &Ipv4Addr ) -> Result<()>
Executes an operation of the IP_ADD_MEMBERSHIP
type.
This function specifies a new multicast group for this socket to join.
The address must be a valid multicast address, and interface
is the
address of the local interface with which the system should join the
multicast group. If it’s equal to INADDR_ANY
then an appropriate
interface is chosen by the system.
sourcefn join_multicast_v6(&self, multiaddr: &Ipv6Addr, interface: u32) -> Result<()>
fn join_multicast_v6(&self, multiaddr: &Ipv6Addr, interface: u32) -> Result<()>
Executes an operation of the IPV6_ADD_MEMBERSHIP
type.
This function specifies a new multicast group for this socket to join.
The address must be a valid multicast address, and interface
is the
index of the interface to join/leave (or 0 to indicate any interface).
sourcefn leave_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
fn leave_multicast_v4( &self, multiaddr: &Ipv4Addr, interface: &Ipv4Addr ) -> Result<()>
Executes an operation of the IP_DROP_MEMBERSHIP
type.
For more information about this option, see
join_multicast_v4
.
sourcefn leave_multicast_v6(&self, multiaddr: &Ipv6Addr, interface: u32) -> Result<()>
fn leave_multicast_v6(&self, multiaddr: &Ipv6Addr, interface: u32) -> Result<()>
Executes an operation of the IPV6_DROP_MEMBERSHIP
type.
For more information about this option, see
join_multicast_v6
.
sourcefn set_read_timeout_ms(&self, val: Option<u32>) -> Result<()>
fn set_read_timeout_ms(&self, val: Option<u32>) -> Result<()>
Sets the SO_RCVTIMEO
option for this socket.
This option specifies the timeout, in milliseconds, of how long calls to
this socket’s read
function will wait before returning a timeout. A
value of None
means that no read timeout should be specified and
otherwise Some
indicates the number of milliseconds for the timeout.
sourcefn set_read_timeout(&self, val: Option<Duration>) -> Result<()>
fn set_read_timeout(&self, val: Option<Duration>) -> Result<()>
Sets the SO_RCVTIMEO
option for this socket.
This option specifies the timeout of how long calls to this socket’s
read
function will wait before returning a timeout. A value of None
means that no read timeout should be specified and otherwise Some
indicates the number of duration of the timeout.
sourcefn read_timeout_ms(&self) -> Result<Option<u32>>
fn read_timeout_ms(&self) -> Result<Option<u32>>
Gets the value of the SO_RCVTIMEO
option for this socket.
For more information about this option, see set_read_timeout_ms
.
sourcefn read_timeout(&self) -> Result<Option<Duration>>
fn read_timeout(&self) -> Result<Option<Duration>>
Gets the value of the SO_RCVTIMEO
option for this socket.
For more information about this option, see set_read_timeout
.
sourcefn set_write_timeout_ms(&self, val: Option<u32>) -> Result<()>
fn set_write_timeout_ms(&self, val: Option<u32>) -> Result<()>
Sets the SO_SNDTIMEO
option for this socket.
This option specifies the timeout, in milliseconds, of how long calls to
this socket’s write
function will wait before returning a timeout. A
value of None
means that no read timeout should be specified and
otherwise Some
indicates the number of milliseconds for the timeout.
sourcefn set_write_timeout(&self, val: Option<Duration>) -> Result<()>
fn set_write_timeout(&self, val: Option<Duration>) -> Result<()>
Sets the SO_SNDTIMEO
option for this socket.
This option specifies the timeout of how long calls to this socket’s
write
function will wait before returning a timeout. A value of None
means that no read timeout should be specified and otherwise Some
indicates the duration of the timeout.
sourcefn write_timeout_ms(&self) -> Result<Option<u32>>
fn write_timeout_ms(&self) -> Result<Option<u32>>
Gets the value of the SO_SNDTIMEO
option for this socket.
For more information about this option, see set_write_timeout_ms
.
sourcefn write_timeout(&self) -> Result<Option<Duration>>
fn write_timeout(&self) -> Result<Option<Duration>>
Gets the value of the SO_SNDTIMEO
option for this socket.
For more information about this option, see set_write_timeout
.
sourcefn take_error(&self) -> Result<Option<Error>>
fn take_error(&self) -> Result<Option<Error>>
Get the value of the SO_ERROR
option on this socket.
This will retrieve the stored error in the underlying socket, clearing the field in the process. This can be useful for checking errors between calls.
sourcefn connect<A: ToSocketAddrs>(&self, addr: A) -> Result<()>
fn connect<A: ToSocketAddrs>(&self, addr: A) -> Result<()>
Connects this UDP socket to a remote address, allowing the send
and
recv
syscalls to be used to send data and also applies filters to only
receive data from the specified address.
sourcefn send(&self, buf: &[u8]) -> Result<usize>
fn send(&self, buf: &[u8]) -> Result<usize>
Sends data on the socket to the remote address to which it is connected.
The connect
method will connect this socket to a remote address. This
method will fail if the socket is not connected.
sourcefn recv(&self, buf: &mut [u8]) -> Result<usize>
fn recv(&self, buf: &mut [u8]) -> Result<usize>
Receives data on the socket from the remote address to which it is connected.
The connect
method will connect this socket to a remote address. This
method will fail if the socket is not connected.
sourcefn set_nonblocking(&self, nonblocking: bool) -> Result<()>
fn set_nonblocking(&self, nonblocking: bool) -> Result<()>
Moves this UDP socket into or out of nonblocking mode.
For more information about this option, see
TcpStreamExt::set_nonblocking
.