1 | /*
|
---|
2 | * - 10 Apr. 2015
|
---|
3 | * Added support for Arduino Ethernet Shield 2
|
---|
4 | * by Arduino.org team
|
---|
5 | */
|
---|
6 |
|
---|
7 | #ifndef _SOCKET_H_
|
---|
8 | #define _SOCKET_H_
|
---|
9 |
|
---|
10 | #include "utility/w5500.h"
|
---|
11 |
|
---|
12 | extern uint8_t socket(SOCKET s, uint8_t protocol, uint16_t port, uint8_t flag); // Opens a socket(TCP or UDP or IP_RAW mode)
|
---|
13 | extern void close(SOCKET s); // Close socket
|
---|
14 | extern uint8_t connect(SOCKET s, uint8_t * addr, uint16_t port); // Establish TCP connection (Active connection)
|
---|
15 | extern void disconnect(SOCKET s); // disconnect the connection
|
---|
16 | extern uint8_t listen(SOCKET s); // Establish TCP connection (Passive connection)
|
---|
17 | extern uint16_t send(SOCKET s, const uint8_t * buf, uint16_t len); // Send data (TCP)
|
---|
18 | extern int16_t recv(SOCKET s, uint8_t * buf, int16_t len); // Receive data (TCP)
|
---|
19 | extern uint16_t peek(SOCKET s, uint8_t *buf);
|
---|
20 | extern uint16_t sendto(SOCKET s, const uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port); // Send data (UDP/IP RAW)
|
---|
21 | extern uint16_t recvfrom(SOCKET s, uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t *port); // Receive data (UDP/IP RAW)
|
---|
22 | extern void flush(SOCKET s); // Wait for transmission to complete
|
---|
23 |
|
---|
24 | extern uint16_t igmpsend(SOCKET s, const uint8_t * buf, uint16_t len);
|
---|
25 |
|
---|
26 | // Functions to allow buffered UDP send (i.e. where the UDP datagram is built up over a
|
---|
27 | // number of calls before being sent
|
---|
28 | /*
|
---|
29 | @brief This function sets up a UDP datagram, the data for which will be provided by one
|
---|
30 | or more calls to bufferData and then finally sent with sendUDP.
|
---|
31 | @return 1 if the datagram was successfully set up, or 0 if there was an error
|
---|
32 | */
|
---|
33 | extern int startUDP(SOCKET s, uint8_t* addr, uint16_t port);
|
---|
34 | /*
|
---|
35 | @brief This function copies up to len bytes of data from buf into a UDP datagram to be
|
---|
36 | sent later by sendUDP. Allows datagrams to be built up from a series of bufferData calls.
|
---|
37 | @return Number of bytes successfully buffered
|
---|
38 | */
|
---|
39 | uint16_t bufferData(SOCKET s, uint16_t offset, const uint8_t* buf, uint16_t len);
|
---|
40 | /*
|
---|
41 | @brief Send a UDP datagram built up from a sequence of startUDP followed by one or more
|
---|
42 | calls to bufferData.
|
---|
43 | @return 1 if the datagram was successfully sent, or 0 if there was an error
|
---|
44 | */
|
---|
45 | int sendUDP(SOCKET s);
|
---|
46 |
|
---|
47 | #endif
|
---|
48 | /* _SOCKET_H_ */
|
---|