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