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
AsRawHandle::as_raw_handle
and AsRawSocket::as_raw_socket
but can return either type. Read moresourceimpl AsRawSocket for UdpSocket
Available on Windows only.
impl AsRawSocket for UdpSocket
sourcefn as_raw_socket(&self) -> RawSocket
fn as_raw_socket(&self) -> RawSocket
sourceimpl AsSocket for UdpSocket
Available on Windows only.
impl AsSocket for UdpSocket
sourcefn as_socket(&self) -> BorrowedSocket<'_>
fn as_socket(&self) -> BorrowedSocket<'_>
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
sourceimpl FromSocket for UdpSocket
Available on Windows only.
impl FromSocket for UdpSocket
sourcefn from_socket(socket: OwnedSocket) -> Self
fn from_socket(socket: OwnedSocket) -> Self
Self
from the given socket.sourcefn from_into_socket<Owned>(into_owned: Owned) -> Selfwhere
Owned: IntoSocket,
fn from_into_socket<Owned>(into_owned: Owned) -> Selfwhere
Owned: IntoSocket,
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
IntoRawHandle::into_raw_handle
and
IntoRawSocket::into_raw_socket
but can return either type. Read moresourceimpl IntoRawSocket for UdpSocket
Available on Windows only.
impl IntoRawSocket for UdpSocket
sourcefn into_raw_socket(self) -> RawSocket
fn into_raw_socket(self) -> RawSocket
sourceimpl IntoSocket for UdpSocket
Available on Windows only.
impl IntoSocket for UdpSocket
sourcefn into_socket(self) -> OwnedSocket
fn into_socket(self) -> OwnedSocket
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 Twhere
T: AsRawHandleOrSocket,
impl<T> AsRawGrip for Twhere
T: AsRawHandleOrSocket,
sourcefn as_raw_grip(&self) -> RawHandleOrSocket
fn as_raw_grip(&self) -> RawHandleOrSocket
sourceimpl<T> AsRawSocketlike for Twhere
T: AsRawSocket,
impl<T> AsRawSocketlike for Twhere
T: AsRawSocket,
sourcefn as_raw_socketlike(&self) -> u64
fn as_raw_socketlike(&self) -> u64
sourceimpl<T> AsSocketlike for Twhere
T: AsSocket,
impl<T> AsSocketlike for Twhere
T: AsSocket,
sourcefn as_socketlike(&self) -> BorrowedSocket<'_>
fn as_socketlike(&self) -> BorrowedSocket<'_>
sourcefn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>where
Target: SocketlikeViewType,
fn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>where
Target: SocketlikeViewType,
&Target
. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> FromRawSocketlike for Twhere
T: FromRawSocket,
impl<T> FromRawSocketlike for Twhere
T: FromRawSocket,
sourceunsafe fn from_raw_socketlike(raw: u64) -> T
unsafe fn from_raw_socketlike(raw: u64) -> T
Self
from the raw value.sourceimpl<T> FromSocketlike for Twhere
T: FromSocket,
impl<T> FromSocketlike for Twhere
T: FromSocket,
sourcefn from_socketlike(owned: OwnedSocket) -> T
fn from_socketlike(owned: OwnedSocket) -> T
Self
from the given socketlike object.sourcefn from_into_socketlike<Owned>(owned: Owned) -> Twhere
Owned: IntoSocketlike,
fn from_into_socketlike<Owned>(owned: Owned) -> Twhere
Owned: IntoSocketlike,
Self
from the given socketlike object
converted from into_owned
. Read moresourceimpl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
impl<T> IntoRawGrip for Twhere
T: IntoRawHandleOrSocket,
sourcefn into_raw_grip(self) -> RawHandleOrSocket
fn into_raw_grip(self) -> RawHandleOrSocket
self
and convert into an RawGrip
.