[][src]Trait net2::UdpSocketExt

pub trait UdpSocketExt {
    pub fn set_recv_buffer_size(&self, size: usize) -> Result<()>;
pub fn recv_buffer_size(&self) -> Result<usize>;
pub fn set_send_buffer_size(&self, size: usize) -> Result<()>;
pub fn send_buffer_size(&self) -> Result<usize>;
pub fn set_broadcast(&self, broadcast: bool) -> Result<()>;
pub fn broadcast(&self) -> Result<bool>;
pub fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>;
pub fn multicast_loop_v4(&self) -> Result<bool>;
pub fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>;
pub fn multicast_ttl_v4(&self) -> Result<u32>;
pub fn set_multicast_hops_v6(&self, hops: u32) -> Result<()>;
pub fn multicast_hops_v6(&self) -> Result<u32>;
pub fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>;
pub fn multicast_loop_v6(&self) -> Result<bool>;
pub fn set_multicast_if_v4(&self, interface: &Ipv4Addr) -> Result<()>;
pub fn multicast_if_v4(&self) -> Result<Ipv4Addr>;
pub fn set_multicast_if_v6(&self, interface: u32) -> Result<()>;
pub fn multicast_if_v6(&self) -> Result<u32>;
pub fn set_ttl(&self, ttl: u32) -> Result<()>;
pub fn ttl(&self) -> Result<u32>;
pub fn set_unicast_hops_v6(&self, ttl: u32) -> Result<()>;
pub fn unicast_hops_v6(&self) -> Result<u32>;
pub fn set_only_v6(&self, only_v6: bool) -> Result<()>;
pub fn only_v6(&self) -> Result<bool>;
pub fn join_multicast_v4(
        &self,
        multiaddr: &Ipv4Addr,
        interface: &Ipv4Addr
    ) -> Result<()>;
pub fn join_multicast_v6(
        &self,
        multiaddr: &Ipv6Addr,
        interface: u32
    ) -> Result<()>;
pub fn leave_multicast_v4(
        &self,
        multiaddr: &Ipv4Addr,
        interface: &Ipv4Addr
    ) -> Result<()>;
pub fn leave_multicast_v6(
        &self,
        multiaddr: &Ipv6Addr,
        interface: u32
    ) -> Result<()>;
pub fn set_read_timeout_ms(&self, val: Option<u32>) -> Result<()>;
pub fn set_read_timeout(&self, val: Option<Duration>) -> Result<()>;
pub fn read_timeout_ms(&self) -> Result<Option<u32>>;
pub fn read_timeout(&self) -> Result<Option<Duration>>;
pub fn set_write_timeout_ms(&self, val: Option<u32>) -> Result<()>;
pub fn set_write_timeout(&self, val: Option<Duration>) -> Result<()>;
pub fn write_timeout_ms(&self) -> Result<Option<u32>>;
pub fn write_timeout(&self) -> Result<Option<Duration>>;
pub fn take_error(&self) -> Result<Option<Error>>;
pub fn connect<A: ToSocketAddrs>(&self, addr: A) -> Result<()>;
pub fn send(&self, buf: &[u8]) -> Result<usize>;
pub fn recv(&self, buf: &mut [u8]) -> Result<usize>;
pub fn set_nonblocking(&self, nonblocking: bool) -> Result<()>; }

Extension methods for the standard UdpSocket type in std::net.

Required methods

pub fn set_recv_buffer_size(&self, size: usize) -> Result<()>[src]

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.

pub fn recv_buffer_size(&self) -> Result<usize>[src]

Gets the value of the SO_RCVBUF option on this socket.

For more information about this option, see set_recv_buffer_size.

pub fn set_send_buffer_size(&self, size: usize) -> Result<()>[src]

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.

pub fn send_buffer_size(&self) -> Result<usize>[src]

Gets the value of the SO_SNDBUF option on this socket.

For more information about this option, see set_send_buffer.

pub fn set_broadcast(&self, broadcast: bool) -> Result<()>[src]

Sets the value of the SO_BROADCAST option for this socket.

When enabled, this socket is allowed to send packets to a broadcast address.

pub fn broadcast(&self) -> Result<bool>[src]

Gets the value of the SO_BROADCAST option for this socket.

For more information about this option, see set_broadcast.

pub fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>[src]

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.

pub fn multicast_loop_v4(&self) -> Result<bool>[src]

Gets the value of the IP_MULTICAST_LOOP option for this socket.

For more information about this option, see set_multicast_loop_v4.

pub fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>[src]

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.

pub fn multicast_ttl_v4(&self) -> Result<u32>[src]

Gets the value of the IP_MULTICAST_TTL option for this socket.

For more information about this option, see set_multicast_ttl_v4.

pub fn set_multicast_hops_v6(&self, hops: u32) -> Result<()>[src]

Sets the value of the IPV6_MULTICAST_HOPS option for this socket

pub fn multicast_hops_v6(&self) -> Result<u32>[src]

Gets the value of the IPV6_MULTICAST_HOPS option for this socket

pub fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>[src]

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.

pub fn multicast_loop_v6(&self) -> Result<bool>[src]

Gets the value of the IPV6_MULTICAST_LOOP option for this socket.

For more information about this option, see set_multicast_loop_v6.

pub fn set_multicast_if_v4(&self, interface: &Ipv4Addr) -> Result<()>[src]

Sets the value of the IP_MULTICAST_IF option for this socket.

Specifies the interface to use for routing multicast packets.

pub fn multicast_if_v4(&self) -> Result<Ipv4Addr>[src]

Gets the value of the IP_MULTICAST_IF option for this socket.

Returns the interface to use for routing multicast packets.

pub fn set_multicast_if_v6(&self, interface: u32) -> Result<()>[src]

Sets the value of the IPV6_MULTICAST_IF option for this socket.

Specifies the interface to use for routing multicast packets.

pub fn multicast_if_v6(&self) -> Result<u32>[src]

Gets the value of the IPV6_MULTICAST_IF option for this socket.

Returns the interface to use for routing multicast packets.

pub fn set_ttl(&self, ttl: u32) -> Result<()>[src]

Sets the value for the IP_TTL option on this socket.

This is the same as TcpStreamExt::set_ttl.

pub fn ttl(&self) -> Result<u32>[src]

Gets the value of the IP_TTL option for this socket.

For more information about this option, see TcpStreamExt::set_ttl.

pub fn set_unicast_hops_v6(&self, ttl: u32) -> Result<()>[src]

Sets the value for the IPV6_UNICAST_HOPS option on this socket.

Specifies the hop limit for ipv6 unicast packets

pub fn unicast_hops_v6(&self) -> Result<u32>[src]

Gets the value of the IPV6_UNICAST_HOPS option for this socket.

Specifies the hop limit for ipv6 unicast packets

pub fn set_only_v6(&self, only_v6: bool) -> Result<()>[src]

Sets the value for the IPV6_V6ONLY option on this socket.

For more information about this option, see TcpStreamExt::set_only_v6.

pub fn only_v6(&self) -> Result<bool>[src]

Gets the value of the IPV6_V6ONLY option for this socket.

For more information about this option, see TcpStreamExt::set_only_v6.

pub fn join_multicast_v4(
    &self,
    multiaddr: &Ipv4Addr,
    interface: &Ipv4Addr
) -> Result<()>
[src]

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.

pub fn join_multicast_v6(
    &self,
    multiaddr: &Ipv6Addr,
    interface: u32
) -> Result<()>
[src]

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).

pub fn leave_multicast_v4(
    &self,
    multiaddr: &Ipv4Addr,
    interface: &Ipv4Addr
) -> Result<()>
[src]

Executes an operation of the IP_DROP_MEMBERSHIP type.

For more information about this option, see join_multicast_v4.

pub fn leave_multicast_v6(
    &self,
    multiaddr: &Ipv6Addr,
    interface: u32
) -> Result<()>
[src]

Executes an operation of the IPV6_DROP_MEMBERSHIP type.

For more information about this option, see join_multicast_v6.

pub fn set_read_timeout_ms(&self, val: Option<u32>) -> Result<()>[src]

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.

pub fn set_read_timeout(&self, val: Option<Duration>) -> Result<()>[src]

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.

pub fn read_timeout_ms(&self) -> Result<Option<u32>>[src]

Gets the value of the SO_RCVTIMEO option for this socket.

For more information about this option, see set_read_timeout_ms.

pub fn read_timeout(&self) -> Result<Option<Duration>>[src]

Gets the value of the SO_RCVTIMEO option for this socket.

For more information about this option, see set_read_timeout.

pub fn set_write_timeout_ms(&self, val: Option<u32>) -> Result<()>[src]

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.

pub fn set_write_timeout(&self, val: Option<Duration>) -> Result<()>[src]

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.

pub fn write_timeout_ms(&self) -> Result<Option<u32>>[src]

Gets the value of the SO_SNDTIMEO option for this socket.

For more information about this option, see set_write_timeout_ms.

pub fn write_timeout(&self) -> Result<Option<Duration>>[src]

Gets the value of the SO_SNDTIMEO option for this socket.

For more information about this option, see set_write_timeout.

pub fn take_error(&self) -> Result<Option<Error>>[src]

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.

pub fn connect<A: ToSocketAddrs>(&self, addr: A) -> Result<()>[src]

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.

pub fn send(&self, buf: &[u8]) -> Result<usize>[src]

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.

pub fn recv(&self, buf: &mut [u8]) -> Result<usize>[src]

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.

pub fn set_nonblocking(&self, nonblocking: bool) -> Result<()>[src]

Moves this UDP socket into or out of nonblocking mode.

For more information about this option, see TcpStreamExt::set_nonblocking.

Loading content...

Implementations on Foreign Types

impl UdpSocketExt for UdpSocket[src]

Loading content...

Implementors

Loading content...