#ifndef	_SOCKET_H_
#define	_SOCKET_H_

#include "../mcu/types.h"
#include "w3150a.h"

/**********************************************************
*
* define function of socket API 
*
***********************************************************/
uint8 socket(SOCKET s, uint8 protocol, uint16 port, uint8 flag); // Opens a socket(TCP or UDP or IP_RAW mode)
void close(SOCKET s); // Close socket
uint8 connect(SOCKET s, uint8 * addr, uint16 port); // Establish TCP connection (Active connection)
void disconnect(SOCKET s); // disconnect the connection
uint8 listen(SOCKET s);	// Establish TCP connection (Passive connection)
uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP)
uint16 recv(SOCKET s, uint8 * buf, uint16 len);	// Receive data (TCP)
uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW)
uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16  *port); // Receive data (UDP/IP RAW)
uint16 igmpsend(SOCKET s, const uint8 * buf, uint16 len); // Send data (multicasting)
#endif
/* _SOCKET_H_ */
