pub struct UdpSocket { /* private fields */ }
Expand description
A UDP socket.
This corresponds to std::net::UdpSocket
.
This UdpSocket
has no bind
, connect
, or send_to
methods. To create
a UdpSocket
bound to an address or to send a message to an address, first
obtain a Pool
permitting the address, and then call
Pool::bind_udp_socket
, or Pool::connect_udp_socket
, or
Pool::send_to_udp_socket_addr
.
Implementations
sourceimpl UdpSocket
impl UdpSocket
sourcepub fn from_std(std: UdpSocket) -> Self
pub fn from_std(std: UdpSocket) -> Self
Constructs a new instance of Self
from the given
std::net::UdpSocket
.
This grants access the resources the std::net::UdpSocket
instance
already has access to.
sourcepub fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
pub fn recv_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
Receives a single datagram message on the socket.
This corresponds to std::net::UdpSocket::recv_from
.
sourcepub fn peek_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
pub fn peek_from(&self, buf: &mut [u8]) -> Result<(usize, SocketAddr)>
Receives a single datagram message on the socket, without removing it from the queue.
This corresponds to std::net::UdpSocket::peek_from
.
sourcepub fn peer_addr(&self) -> Result<SocketAddr>
pub fn peer_addr(&self) -> Result<SocketAddr>
Returns the socket address of the remote peer this socket was connected to.
This corresponds to std::net::UdpSocket::peer_addr
.
sourcepub fn local_addr(&self) -> Result<SocketAddr>
pub fn local_addr(&self) -> Result<SocketAddr>
Returns the socket address that this socket was created from.
This corresponds to std::net::UdpSocket::local_addr
.
sourcepub fn try_clone(&self) -> Result<Self>
pub fn try_clone(&self) -> Result<Self>
Creates a new independently owned handle to the underlying socket.
This corresponds to std::net::UdpSocket::try_clone
.
sourcepub fn set_read_timeout(&self, dur: Option<Duration>) -> Result<()>
pub fn set_read_timeout(&self, dur: Option<Duration>) -> Result<()>
Sets the read timeout to the timeout specified.
This corresponds to std::net::UdpSocket::set_read_timeout
.
sourcepub fn set_write_timeout(&self, dur: Option<Duration>) -> Result<()>
pub fn set_write_timeout(&self, dur: Option<Duration>) -> Result<()>
Sets the write timeout to the timeout specified.
This corresponds to std::net::UdpSocket::set_write_timeout
.
sourcepub fn read_timeout(&self) -> Result<Option<Duration>>
pub fn read_timeout(&self) -> Result<Option<Duration>>
Returns the read timeout of this socket.
This corresponds to std::net::UdpSocket::read_timeout
.
sourcepub fn write_timeout(&self) -> Result<Option<Duration>>
pub fn write_timeout(&self) -> Result<Option<Duration>>
Returns the write timeout of this socket.
This corresponds to std::net::UdpSocket::write_timeout
.
sourcepub fn set_broadcast(&self, broadcast: bool) -> Result<()>
pub fn set_broadcast(&self, broadcast: bool) -> Result<()>
Sets the value of the SO_BROADCAST
option for this socket.
This corresponds to std::net::UdpSocket::set_broadcast
.
sourcepub fn broadcast(&self) -> Result<bool>
pub fn broadcast(&self) -> Result<bool>
Gets the value of the SO_BROADCAST
option for this socket.
This corresponds to std::net::UdpSocket::broadcast
.
sourcepub fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>
pub fn set_multicast_loop_v4(&self, multicast_loop_v4: bool) -> Result<()>
Sets the value of the IP_MULTICAST_LOOP
option for this socket.
This corresponds to std::net::UdpSocket::set_multicast_loop_v4
.
sourcepub fn multicast_loop_v4(&self) -> Result<bool>
pub fn multicast_loop_v4(&self) -> Result<bool>
Gets the value of the IP_MULTICAST_LOOP
option for this socket.
This corresponds to std::net::UdpSocket::multicast_loop_v4
.
sourcepub fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>
pub fn set_multicast_ttl_v4(&self, multicast_ttl_v4: u32) -> Result<()>
Sets the value of the IP_MULTICAST_TTL
option for this socket.
This corresponds to std::net::UdpSocket::set_multicast_ttl_v4
.
sourcepub fn multicast_ttl_v4(&self) -> Result<u32>
pub fn multicast_ttl_v4(&self) -> Result<u32>
Gets the value of the IP_MULTICAST_TTL
option for this socket.
This corresponds to std::net::UdpSocket::multicast_ttl_v4
.
sourcepub fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>
pub fn set_multicast_loop_v6(&self, multicast_loop_v6: bool) -> Result<()>
Sets the value of the IPV6_MULTICAST_LOOP
option for this socket.
This corresponds to std::net::UdpSocket::set_multicast_loop_v6
.
sourcepub fn multicast_loop_v6(&self) -> Result<bool>
pub fn multicast_loop_v6(&self) -> Result<bool>
Gets the value of the IPV6_MULTICAST_LOOP
option for this socket.
This corresponds to std::net::UdpSocket::multicast_loop_v6
.
sourcepub fn set_ttl(&self, ttl: u32) -> Result<()>
pub fn set_ttl(&self, ttl: u32) -> Result<()>
Sets the value for the IP_TTL
option on this socket.
This corresponds to std::net::UdpSocket::set_ttl
.
sourcepub fn ttl(&self) -> Result<u32>
pub fn ttl(&self) -> Result<u32>
Gets the value of the IP_TTL
option for this socket.
This corresponds to std::net::UdpSocket::ttl
.
sourcepub fn join_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
pub fn join_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
Executes an operation of the IP_ADD_MEMBERSHIP
type.
This corresponds to std::net::UdpSocket::join_multicast_v4
.
sourcepub fn join_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>
pub fn join_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>
Executes an operation of the IPV6_ADD_MEMBERSHIP
type.
This corresponds to std::net::UdpSocket::join_multicast_v6
.
sourcepub fn leave_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
pub fn leave_multicast_v4(
&self,
multiaddr: &Ipv4Addr,
interface: &Ipv4Addr
) -> Result<()>
Executes an operation of the IP_DROP_MEMBERSHIP
type.
This corresponds to std::net::UdpSocket::leave_multicast_v4
.
sourcepub fn leave_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>
pub fn leave_multicast_v6(
&self,
multiaddr: &Ipv6Addr,
interface: u32
) -> Result<()>
Executes an operation of the IPV6_DROP_MEMBERSHIP
type.
This corresponds to std::net::UdpSocket::leave_multicast_v6
.
sourcepub fn take_error(&self) -> Result<Option<Error>>
pub fn take_error(&self) -> Result<Option<Error>>
Gets the value of the SO_ERROR
option on this socket.
This corresponds to std::net::UdpSocket::take_error
.
sourcepub fn send(&self, buf: &[u8]) -> Result<usize>
pub fn send(&self, buf: &[u8]) -> Result<usize>
Sends data on the socket to the remote address to which it is connected.
This corresponds to std::net::UdpSocket::send
.
sourcepub fn recv(&self, buf: &mut [u8]) -> Result<usize>
pub 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.
This corresponds to std::net::UdpSocket::recv
.
sourcepub fn peek(&self, buf: &mut [u8]) -> Result<usize>
pub fn peek(&self, buf: &mut [u8]) -> Result<usize>
Receives single datagram on the socket from the remote address to which it is connected, without removing the message from input queue.
This corresponds to std::net::UdpSocket::peek
.
sourcepub fn set_nonblocking(&self, nonblocking: bool) -> Result<()>
pub fn set_nonblocking(&self, nonblocking: bool) -> Result<()>
Moves this UDP socket into or out of nonblocking mode.
This corresponds to std::net::UdpSocket::set_nonblocking
.
Trait Implementations
sourceimpl AsRawHandleOrSocket for UdpSocket
Available on Windows only.
impl AsRawHandleOrSocket for UdpSocket
sourcefn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
fn as_raw_handle_or_socket(&self) -> RawHandleOrSocket
Like AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type. Read more
sourceimpl AsRawSocket for UdpSocket
Available on Windows only.
impl AsRawSocket for UdpSocket
sourcefn as_raw_socket(&self) -> RawSocket
fn as_raw_socket(&self) -> RawSocket
Extracts the raw socket. Read more
sourceimpl AsSocket for UdpSocket
Available on Windows only.
impl AsSocket for UdpSocket
sourcefn as_socket(&self) -> BorrowedSocket<'_>
fn as_socket(&self) -> BorrowedSocket<'_>
Borrows the socket.
sourceimpl FromRawSocket for UdpSocket
Available on Windows only.
impl FromRawSocket for UdpSocket
sourceunsafe fn from_raw_socket(socket: RawSocket) -> Self
unsafe fn from_raw_socket(socket: RawSocket) -> Self
Constructs a new I/O object from the specified raw socket. Read more
sourceimpl FromSocket for UdpSocket
Available on Windows only.
impl FromSocket for UdpSocket
sourcefn from_socket(socket: OwnedSocket) -> Self
fn from_socket(socket: OwnedSocket) -> Self
Constructs a new instance of Self
from the given socket.
sourcefn from_into_socket<Owned>(into_owned: Owned) -> Self where
Owned: IntoSocket,
fn from_into_socket<Owned>(into_owned: Owned) -> Self where
Owned: IntoSocket,
Constructs a new instance of Self
from the given socket converted
from into_owned
. Read more
sourceimpl IntoRawHandleOrSocket for UdpSocket
Available on Windows only.
impl IntoRawHandleOrSocket for UdpSocket
sourcefn into_raw_handle_or_socket(self) -> RawHandleOrSocket
fn into_raw_handle_or_socket(self) -> RawHandleOrSocket
Like IntoRawHandle::into_raw_handle
and
IntoRawSocket::into_raw_socket
but can return either type. Read more
sourceimpl IntoRawSocket for UdpSocket
Available on Windows only.
impl IntoRawSocket for UdpSocket
sourcefn into_raw_socket(self) -> RawSocket
fn into_raw_socket(self) -> RawSocket
Consumes this object, returning the raw underlying socket. Read more
sourceimpl IntoSocket for UdpSocket
Available on Windows only.
impl IntoSocket for UdpSocket
sourcefn into_socket(self) -> OwnedSocket
fn into_socket(self) -> OwnedSocket
Consumes this object, returning the underlying socket.
Auto Trait Implementations
impl RefUnwindSafe for UdpSocket
impl Send for UdpSocket
impl Sync for UdpSocket
impl Unpin for UdpSocket
impl UnwindSafe for UdpSocket
Blanket Implementations
sourceimpl<T> AsRawGrip for T where
T: AsRawHandleOrSocket,
impl<T> AsRawGrip for T where
T: AsRawHandleOrSocket,
sourcefn as_raw_grip(&self) -> RawHandleOrSocket
fn as_raw_grip(&self) -> RawHandleOrSocket
Extracts the raw grip.
sourceimpl<T> AsRawSocketlike for T where
T: AsRawSocket,
impl<T> AsRawSocketlike for T where
T: AsRawSocket,
sourcefn as_raw_socketlike(&self) -> u64
fn as_raw_socketlike(&self) -> u64
Returns the raw value.
sourceimpl<T> AsSocketlike for T where
T: AsSocket,
impl<T> AsSocketlike for T where
T: AsSocket,
sourcefn as_socketlike(&self) -> BorrowedSocket<'_>
fn as_socketlike(&self) -> BorrowedSocket<'_>
Borrows the reference.
sourcefn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target> where
Target: SocketlikeViewType,
fn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target> where
Target: SocketlikeViewType,
Return a borrowing view of a resource which dereferences to a &Target
. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FromRawSocketlike for T where
T: FromRawSocket,
impl<T> FromRawSocketlike for T where
T: FromRawSocket,
sourceunsafe fn from_raw_socketlike(raw: u64) -> T
unsafe fn from_raw_socketlike(raw: u64) -> T
Constructs Self
from the raw value.
sourceimpl<T> FromSocketlike for T where
T: FromSocket,
impl<T> FromSocketlike for T where
T: FromSocket,
sourcefn from_socketlike(owned: OwnedSocket) -> T
fn from_socketlike(owned: OwnedSocket) -> T
Constructs a new instance of Self
from the given socketlike object.
sourcefn from_into_socketlike<Owned>(owned: Owned) -> T where
Owned: IntoSocketlike,
fn from_into_socketlike<Owned>(owned: Owned) -> T where
Owned: IntoSocketlike,
Constructs a new instance of Self
from the given socketlike object
converted from into_owned
. Read more
sourceimpl<T> IntoRawGrip for T where
T: IntoRawHandleOrSocket,
impl<T> IntoRawGrip for T where
T: IntoRawHandleOrSocket,
sourcefn into_raw_grip(self) -> RawHandleOrSocket
fn into_raw_grip(self) -> RawHandleOrSocket
Consume self
and convert into an RawGrip
.
sourceimpl<T> IntoRawSocketlike for T where
T: IntoRawSocket,
impl<T> IntoRawSocketlike for T where
T: IntoRawSocket,
sourcefn into_raw_socketlike(self) -> u64
fn into_raw_socketlike(self) -> u64
Returns the raw value.
sourceimpl<T> IntoSocketlike for T where
T: IntoSocket,
impl<T> IntoSocketlike for T where
T: IntoSocket,
sourcefn into_socketlike(self) -> OwnedSocket
fn into_socketlike(self) -> OwnedSocket
Consumes this object, returning the underlying socketlike object. Read more