/* * @file socket.h @brief define function of socket API * */ #ifndef _SOCKET_H_ #define _SOCKET_H_ #define TCP_SOCKET 1 #define UDP_SOCKET 2 #define RAW_SOCKET 3 #define SOCK_NOT_AVAIL 255 #include "utility/wl_definitions.h" /** * The 8-bit signed data type. */ typedef char int8; /** * The volatile 8-bit signed data type. */ typedef volatile char vint8; /** * The 8-bit unsigned data type. */ typedef unsigned char uint8; /** * The volatile 8-bit unsigned data type. */ typedef volatile unsigned char vuint8; /** * The 16-bit signed data type. */ typedef int int16; /** * The volatile 16-bit signed data type. */ typedef volatile int vint16; /** * The 16-bit unsigned data type. */ typedef unsigned int uint16; /** * The volatile 16-bit unsigned data type. */ typedef volatile unsigned int vuint16; /** * The 32-bit signed data type. */ typedef long int32; /** * The volatile 32-bit signed data type. */ typedef volatile long vint32; /** * The 32-bit unsigned data type. */ typedef unsigned long uint32; /** * The volatile 32-bit unsigned data type. */ typedef volatile unsigned long vuint32; /* bsd */ typedef uint8 u_char; /**< 8-bit value */ typedef uint16_t SOCKET; typedef uint16 u_short; /**< 16-bit value */ typedef uint16 u_int; /**< 16-bit value */ typedef uint32 u_long; /**< 32-bit value */ extern SOCKET socket(uint8 protocol); // Opens a socket(TCP or UDP or IP_RAW mode) extern void close(SOCKET s); // Close socket extern uint8 connect(SOCKET s, uint8 * addr, uint16 port); // Establish TCP connection (Active connection) extern void disconnect(SOCKET s); // disconnect the connection extern uint8 listen(SOCKET s); // Establish TCP connection (Passive connection) extern uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP) extern uint16 recv(SOCKET s, uint8 * buf, uint16 len); // Receive data (TCP) extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW) extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16 *port); // Receive data (UDP/IP RAW) extern uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len); #endif /* _SOCKET_H_ */