This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/TcpSocket.h@115:fa79286d8ea4, 2017-02-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |