Skip to main content

Socket

Struct Socket 

Source
pub struct Socket<A, S> { /* private fields */ }

Implementations§

Source§

impl<A: NetworkAddress, S> Socket<A, S>

Source

pub fn local_addr(&self) -> A

Source

pub fn poll_recv( &self, buf: &mut [u8], cx: &mut Context<'_>, ) -> Poll<Result<RecvResult<A>>>

Poll to receive a packet on the socket.

Note that on multiple calls to poll_recv, only the Waker from the Context on the most recent call is scheduled to receive a wakeup.

Source

pub async fn recv(&self, buf: &mut [u8]) -> Result<RecvResult<A>>

Source

pub fn get_send_timestamp( &self, ) -> impl Future<Output = Result<(SendTimestampToken, TimestampData)>> + Send + Sync + 'static

Wait for the next send timestamp to be returned.

Note: There is no poll variant for this function, as that is currently impossible to implement with the tools tokio provides. To compensate, the future returned here is independent of the self reference and can be stored to simulate the existence of a poll function.

Source§

impl<A: NetworkAddress> Socket<A, Open>

Source

pub fn poll_send_to( &self, buf: &[u8], addr: A, cx: &mut Context<'_>, ) -> Poll<Result<Option<SendTimestampToken>>>

Send a packet to a given receiver on the socket.

Note that on multiple calls to poll_send_*, only the Waker from the Context on the most recent call is scheduled to receive a wakeup.

Source

pub async fn send_to(&mut self, buf: &[u8], addr: A) -> Result<TimestampData>

Send a packet to a given receiver on the socket.

When used in combination with the polling send functions, if there are timestamps pending for some SendTimestampToken, these may be skipped and become unavailable when calling this function.

Source

pub fn poll_send_from_to( &self, buf: &[u8], from: A, to: A, cx: &mut Context<'_>, ) -> Poll<Result<Option<SendTimestampToken>>>

Send a packet to a given receiver on the socket, using the specified origin address.

Note that on multiple calls to poll_send_*, only the Waker from the Context on the most recent call is scheduled to receive a wakeup.

Source

pub async fn send_from_to( &mut self, buf: &[u8], from: A, to: A, ) -> Result<TimestampData>

Send a packet to a given receiver on the socket, using the specified origin address.

When used in combination with the polling send functions, if there are timestamps pending for some SendTimestampToken, these may be skipped and become unavailable when calling this function.

Source

pub fn connect(self, addr: A) -> Result<Socket<A, Connected>>

Source§

impl<A: NetworkAddress> Socket<A, Connected>

Source

pub fn peer_addr(&self) -> Result<A>

Source

pub fn poll_send( &self, buf: &[u8], cx: &mut Context<'_>, ) -> Poll<Result<Option<SendTimestampToken>>>

Send a packet on the socket.

Note that on multiple calls to poll_send_*, only the Waker from the Context on the most recent call is scheduled to receive a wakeup.

Source

pub async fn send(&mut self, buf: &[u8]) -> Result<TimestampData>

Send a packet on the socket.

When used in combination with the polling send functions, if there are timestamps pending for some SendTimestampToken, these may be skipped and become unavailable when calling this function.

Source

pub fn poll_send_from( &self, buf: &[u8], from: A, cx: &mut Context<'_>, ) -> Poll<Result<Option<SendTimestampToken>>>

Send a packet on the socket.

Note that on multiple calls to poll_send_*, only the Waker from the Context on the most recent call is scheduled to receive a wakeup.

Source

pub async fn send_from(&mut self, buf: &[u8], from: A) -> Result<TimestampData>

Send a packet on the socket, with the given local address.

When used in combination with the polling send functions, if there are timestamps pending for some SendTimestampToken, these may be skipped and become unavailable when calling this function.

Source§

impl<A: MulticastJoinable, S> Socket<A, S>

Source

pub fn join_multicast(&self, addr: A, interface: InterfaceName) -> Result<()>

Source

pub fn leave_multicast(&self, addr: A, interface: InterfaceName) -> Result<()>

Trait Implementations§

Source§

impl<A: Debug, S: Debug> Debug for Socket<A, S>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<A, S> !Freeze for Socket<A, S>

§

impl<A, S> !RefUnwindSafe for Socket<A, S>

§

impl<A, S> !UnwindSafe for Socket<A, S>

§

impl<A, S> Send for Socket<A, S>
where A: Send, S: Send,

§

impl<A, S> Sync for Socket<A, S>
where A: Sync, S: Sync,

§

impl<A, S> Unpin for Socket<A, S>
where A: Unpin, S: Unpin,

§

impl<A, S> UnsafeUnpin for Socket<A, S>
where A: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more