This is Webservice SDK for mbed. LPCXpresso1769/LPC1768/FRDM-K64F/LPC4088
Fork of libMiMic by
mbed/TcpSocket.cpp@115:fa79286d8ea4, 2017-02-24 (annotated)
- Committer:
- furutani
- Date:
- Fri Feb 24 04:43:41 2017 +0000
- Revision:
- 115:fa79286d8ea4
- Parent:
- 110:257739f9b31e
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 | //////////////////////////////////////////////////////////////////////////////// |
nyatla | 58:03b89038b21a | 2 | // TcpSocket.h |
nyatla | 58:03b89038b21a | 3 | //////////////////////////////////////////////////////////////////////////////// |
nyatla | 58:03b89038b21a | 4 | |
nyatla | 58:03b89038b21a | 5 | #include "TcpSocket.h" |
nyatla | 109:18f12ac01097 | 6 | #include "mbed.h" |
nyatla | 58:03b89038b21a | 7 | |
nyatla | 58:03b89038b21a | 8 | namespace MiMic |
nyatla | 58:03b89038b21a | 9 | { |
nyatla | 58:03b89038b21a | 10 | #define TIMEOUT_IN_MSEC (5*1000) |
nyatla | 58:03b89038b21a | 11 | |
nyatla | 109:18f12ac01097 | 12 | TcpSocket::TcpSocket() |
nyatla | 58:03b89038b21a | 13 | { |
nyatla | 110:257739f9b31e | 14 | this->_inst=NyLPC_cNet_createTcpSocketEx(NyLPC_TSocketType_TCP_NORMAL); |
nyatla | 109:18f12ac01097 | 15 | if(this->_inst==NULL){ |
nyatla | 109:18f12ac01097 | 16 | mbed_die(); |
nyatla | 109:18f12ac01097 | 17 | } |
nyatla | 58:03b89038b21a | 18 | } |
nyatla | 58:03b89038b21a | 19 | TcpSocket::~TcpSocket() |
nyatla | 58:03b89038b21a | 20 | { |
nyatla | 109:18f12ac01097 | 21 | NyLPC_iTcpSocket_finalize(this->_inst); |
nyatla | 58:03b89038b21a | 22 | } |
furutani | 115:fa79286d8ea4 | 23 | bool TcpSocket::connect(const IpAddr& i_addr,unsigned short i_port, unsigned int timeout) |
nyatla | 58:03b89038b21a | 24 | { |
furutani | 115:fa79286d8ea4 | 25 | return NyLPC_iTcpSocket_connect(this->_inst,&(i_addr.addr.v4),i_port,timeout)?true:false; |
nyatla | 58:03b89038b21a | 26 | } |
nyatla | 58:03b89038b21a | 27 | |
nyatla | 58:03b89038b21a | 28 | bool TcpSocket::send(const void* i_tx,unsigned short i_tx_size) |
nyatla | 58:03b89038b21a | 29 | { |
nyatla | 58:03b89038b21a | 30 | int l,t; |
nyatla | 58:03b89038b21a | 31 | l=i_tx_size; |
nyatla | 58:03b89038b21a | 32 | while(l>0){ |
nyatla | 109:18f12ac01097 | 33 | t=NyLPC_iTcpSocket_send(this->_inst,((const char*)i_tx)+(i_tx_size-l),l,TIMEOUT_IN_MSEC); |
nyatla | 58:03b89038b21a | 34 | if(t<0){ |
nyatla | 58:03b89038b21a | 35 | return false; |
nyatla | 58:03b89038b21a | 36 | } |
nyatla | 58:03b89038b21a | 37 | l-=t; |
nyatla | 58:03b89038b21a | 38 | } |
nyatla | 58:03b89038b21a | 39 | return true; |
nyatla | 58:03b89038b21a | 40 | } |
nyatla | 60:803de2088243 | 41 | bool TcpSocket::canRecv() |
nyatla | 60:803de2088243 | 42 | { |
nyatla | 60:803de2088243 | 43 | const void* rx; |
nyatla | 109:18f12ac01097 | 44 | return NyLPC_iTcpSocket_precv(this->_inst,&rx,0)>0; |
nyatla | 60:803de2088243 | 45 | } |
furutani | 115:fa79286d8ea4 | 46 | int TcpSocket::precv(const void* &i_rx, unsigned int timeout) |
nyatla | 58:03b89038b21a | 47 | { |
furutani | 115:fa79286d8ea4 | 48 | return NyLPC_iTcpSocket_precv(this->_inst,&i_rx,timeout); |
nyatla | 58:03b89038b21a | 49 | } |
furutani | 115:fa79286d8ea4 | 50 | int TcpSocket::precv(const char* &i_rx, unsigned int timeout) |
nyatla | 59:cb5c3184c59f | 51 | { |
furutani | 115:fa79286d8ea4 | 52 | return NyLPC_iTcpSocket_precv(this->_inst,(const void**)&i_rx,timeout); |
nyatla | 59:cb5c3184c59f | 53 | } |
nyatla | 58:03b89038b21a | 54 | void TcpSocket::pseek(unsigned short i_rx_seek) |
nyatla | 58:03b89038b21a | 55 | { |
nyatla | 109:18f12ac01097 | 56 | NyLPC_iTcpSocket_pseek(this->_inst,i_rx_seek); |
nyatla | 58:03b89038b21a | 57 | } |
nyatla | 58:03b89038b21a | 58 | void TcpSocket::close() |
nyatla | 58:03b89038b21a | 59 | { |
nyatla | 109:18f12ac01097 | 60 | return NyLPC_iTcpSocket_close(this->_inst,TIMEOUT_IN_MSEC); |
nyatla | 58:03b89038b21a | 61 | } |
nyatla | 109:18f12ac01097 | 62 | } |