This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088

Fork of libMiMic by Ryo Iizuka

Committer:
furutani
Date:
Fri Feb 24 04:43:41 2017 +0000
Revision:
115:fa79286d8ea4
Parent:
109:18f12ac01097
Delete missing include line.; Add parameter "timeout" to TCPSocket::connect(), precv().; Fix to send ARP request to default gateway when connecting to IP address of different segment.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nyatla 58:03b89038b21a 1 #pragma once
nyatla 58:03b89038b21a 2 ////////////////////////////////////////////////////////////////////////////////
nyatla 58:03b89038b21a 3 // TcpSocket.h
nyatla 58:03b89038b21a 4 ////////////////////////////////////////////////////////////////////////////////
nyatla 58:03b89038b21a 5
nyatla 109:18f12ac01097 6 #include "NyLPC_netif.h"
nyatla 58:03b89038b21a 7 #include "IpAddr.h"
nyatla 58:03b89038b21a 8
nyatla 58:03b89038b21a 9 namespace MiMic
nyatla 58:03b89038b21a 10 {
nyatla 58:03b89038b21a 11 /**
nyatla 58:03b89038b21a 12 * Tcp Socket Class.
nyatla 58:03b89038b21a 13 * The class is used by Net constructor.
nyatla 58:03b89038b21a 14 */
nyatla 58:03b89038b21a 15 class TcpSocket
nyatla 58:03b89038b21a 16 {
nyatla 58:03b89038b21a 17 private:
nyatla 109:18f12ac01097 18 NyLPC_TiTcpSocket_t* _inst;
nyatla 58:03b89038b21a 19 public:
nyatla 58:03b89038b21a 20 /** wrapped base LPC class.*/
nyatla 109:18f12ac01097 21 NyLPC_TiTcpSocket_t* refBaseInstance(){return this->_inst;}
nyatla 58:03b89038b21a 22
nyatla 58:03b89038b21a 23 public:
nyatla 109:18f12ac01097 24 TcpSocket();
nyatla 58:03b89038b21a 25 virtual ~TcpSocket();
nyatla 58:03b89038b21a 26 /**
nyatla 58:03b89038b21a 27 * @param i_host_addr
nyatla 58:03b89038b21a 28 * must be IPv4 address format.
nyatla 58:03b89038b21a 29 */
furutani 115:fa79286d8ea4 30 bool connect(const IpAddr& i_addr,unsigned short i_port, unsigned int timeout=5*1000);
nyatla 58:03b89038b21a 31 bool send(const void* i_tx,unsigned short i_tx_size);
nyatla 58:03b89038b21a 32 /**
nyatla 58:03b89038b21a 33 * This function return recieved data and size.
nyatla 58:03b89038b21a 34 * The function sets the head of the readable buffer which can always be read.
nyatla 58:03b89038b21a 35 * A position is not changed until pseek was called.
nyatla 58:03b89038b21a 36 * @param i_rx
nyatla 58:03b89038b21a 37 * address of variable which accepts received data pointer.
nyatla 58:03b89038b21a 38 * @retrun
nyatla 58:03b89038b21a 39 * n<-1 Error
nyatla 58:03b89038b21a 40 * n==0 Timeout (connection still established)
nyatla 58:03b89038b21a 41 * n>0 Success. readable data size in i_rx.
nyatla 58:03b89038b21a 42 */
furutani 115:fa79286d8ea4 43 int precv(const void* &i_rx, unsigned int timeout=5*1000);
furutani 115:fa79286d8ea4 44 int precv(const char* &i_rx, unsigned int timeout=5*1000);
nyatla 58:03b89038b21a 45 /**
nyatla 60:803de2088243 46 * true if precv has data.
nyatla 60:803de2088243 47 * This can avoid the block of precv.
nyatla 60:803de2088243 48 */
nyatla 60:803de2088243 49 bool canRecv();
nyatla 60:803de2088243 50
nyatla 60:803de2088243 51 /**
nyatla 58:03b89038b21a 52 * This function seek rx pointer to next.
nyatla 58:03b89038b21a 53 * @param i_rx_size
nyatla 58:03b89038b21a 54 * seek size. Must be returned value which is small or equal by the precv.
nyatla 58:03b89038b21a 55 */
nyatla 58:03b89038b21a 56 void pseek(unsigned short i_rx_seek);
nyatla 58:03b89038b21a 57 void close();
nyatla 58:03b89038b21a 58 };
nyatla 58:03b89038b21a 59
nyatla 58:03b89038b21a 60 }