#[repr(u8)]pub enum SocketCommand {
Accepted = 0,
Open = 1,
Listen = 2,
Connect = 4,
Disconnect = 8,
Close = 16,
Send = 32,
SendMac = 33,
SendKeep = 34,
Recv = 64,
}Expand description
Variants§
Accepted = 0
The command register clears to this state once a command has been accepted.
Open = 1
The socket is initialized and opened according to the protocol
selected in sn_mr.
Listen = 2
Operate the socket as a TCP server.
This will change the socket state from Init to Listen,
and the socket will listen for a
connection-request (SYN packet) from any TCP client.
When a TCP client connection request is successfully established,
the socket state changes from Listen to
Established and the CON socket interrupt is raised.
When a TCP client connection request fails the TIMEOUT socket
interrupt is set and the
socket status changes to Closed.
Only valid in Tcp mode.
Connect = 4
Connect to a TCP server.
A connect-request (SYN packet) is sent to the TCP server configured by
the IPv4 address and port set with set_sn_dest.
If the connect-request is successful, the socket state changes to
Established and the CON socket interrupt is raised.
The connect-request fails in the following three cases:
- When a ARPTO occurs (
timeout_raised) because the destination hardware address is not acquired through the ARP-process. - When a SYN/ACK packet is not received within the TCP timeout duration
set by
rcrandrtr(timeout_raised). - When a RST packet is received instead of a SYN/ACK packet.
In these cases the socket state changes to Closed.
Only valid in Tcp mode when acting as a TCP client.
Disconnect = 8
Start the disconnect process.
- Active close it transmits disconnect-request(FIN packet) to the connected peer.
- Passive close when FIN packet is received from peer, a FIN packet is replied back to the peer.
When the disconnect-process is successful
(that is, FIN/ACK packet is received successfully),
the socket state changes to Closed.
Otherwise, TCP timeout occurs
(timeout_raised) and then
the socket state changes to Closed.
If the Close command is used instead of
Disconnect, the socket state is changes to
Closed without the disconnect process.
If a RST packet is received from a peer during communication the socket
status is unconditionally changed to Closed.
Only valid in Tcp mode.
Close = 16
Close the socket.
The socket status is changed to Closed.
Send = 32
Transmits all the data in the socket TX buffer.
SendMac = 33
The basic operation is same as Send.
Normally Send transmits data after destination
hardware address is acquired by the automatic ARP-process
(Address Resolution Protocol).
SendMac transmits data without the automatic
ARP-process.
In this case, the destination hardware address is acquired from
sn_dhar configured by the host, instead of the ARP
process.
Only valid in Udp mode.
SendKeep = 34
Sends a 1 byte keep-alive packet.
If the peer cannot respond to the keep-alive packet during timeout
time, the connection is terminated and the timeout interrupt will
occur (timeout_raised).
Only valid in Tcp mode.
Recv = 64
Completes the processing of the received data in socket RX buffer.
See sn_rx_buf for an example.
Trait Implementations§
Source§impl Clone for SocketCommand
impl Clone for SocketCommand
Source§fn clone(&self) -> SocketCommand
fn clone(&self) -> SocketCommand
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more