Enum w5500_ll::SocketStatus
source · #[repr(u8)]pub enum SocketStatus {
Show 13 variants
Closed,
Init,
Listen,
SynSent,
SynRecv,
Established,
FinWait,
Closing,
TimeWait,
CloseWait,
LastAck,
Udp,
Macraw,
}
Expand description
Socket status.
This is used with the sn_sr
method.
Variants§
Closed
Socket closed, this is the reset state of all sockets.
This state can be set by a Disconnect
or Close
command.
This state will also be set automatically if a timeout occurs.
Init
The socket is opened in TCP mode.
This state is set when the socket protocol is Tcp
, and a Open
command is sent.
Listen
The socket is listening, operating as a TCP server.
The socket will wait for a connextion-request (SYN packet) from a peer (TCP client).
The state will change to Established
when the connection-request is
successfully accepted.
Otherwise the state will change to Closed
after the
TCP timeout duration set by rcr
and rtr
.
SynSent
Connection request (SYN packet) has been sent to a peer.
This is temporarily displayed between the Init
and Established
states, after a Connect
command has been sent.
If the SYN/ACK is received from the peer the state changes to
Established
, otherwise the state changes to Closed
after the TCP
timeout duration set by rcr
and rtr
.
SynRecv
Connection request (SYN packet) has been received from a peer.
If the socket sends the response (SYN/ACK packet) to the peer
successfully the state changes to Established
, otherwise the state
changes to Closed
after the TCP timeout duration set by rcr
and
rtr
.
Established
TCP connection is established.
When operating as a TCP client this state is set after the TCP server
accepts the SYN packet, which is sent by the client after issuing a
Connect
.
When operating as a TCP server this state is set after a client
connects when in the Listen
state.
While in this state data can be transferred with the Send
and
Recv
commands.
FinWait
Temporary status between status transitions.
This indicates the socket is closing.
Closing
Temporary status between status transitions.
This indicates the socket is closing.
TimeWait
Temporary status between status transitions.
This indicates the socket is closing.
CloseWait
The socket has received the disconnect-request (FIN packet) from the connected peer.
This is half-closing status, and data can be transferred.
For full-closing the Disconnect
command is used.
For just-closing the Close
command is used.
LastAck
Temporary status between status transitions.
Udp
Socket is opened in UDP mode.
This state is set when the socket protocol is Udp
, and a Open
command is sent.
Macraw
Trait Implementations§
source§impl Clone for SocketStatus
impl Clone for SocketStatus
source§fn clone(&self) -> SocketStatus
fn clone(&self) -> SocketStatus
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SocketStatus
impl Debug for SocketStatus
source§impl Default for SocketStatus
impl Default for SocketStatus
source§fn default() -> SocketStatus
fn default() -> SocketStatus
source§impl Format for SocketStatus
impl Format for SocketStatus
source§impl From<SocketStatus> for u8
impl From<SocketStatus> for u8
source§fn from(val: SocketStatus) -> u8
fn from(val: SocketStatus) -> u8
source§impl Hash for SocketStatus
impl Hash for SocketStatus
source§impl Ord for SocketStatus
impl Ord for SocketStatus
source§fn cmp(&self, other: &SocketStatus) -> Ordering
fn cmp(&self, other: &SocketStatus) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl PartialEq<SocketStatus> for SocketStatus
impl PartialEq<SocketStatus> for SocketStatus
source§fn eq(&self, other: &SocketStatus) -> bool
fn eq(&self, other: &SocketStatus) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<SocketStatus> for SocketStatus
impl PartialOrd<SocketStatus> for SocketStatus
source§fn partial_cmp(&self, other: &SocketStatus) -> Option<Ordering>
fn partial_cmp(&self, other: &SocketStatus) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more