Own fork of C027_Support

Dependents:   MbedSmartRestMain MbedSmartRestMain

Fork of C027_Support by u-blox

Committer:
xinlei
Date:
Fri Sep 15 10:12:03 2017 +0000
Revision:
134:d84232916eac
Parent:
67:ff9472d344d4
new apns

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mazgch 44:9d12223b78ff 1 #ifndef TCPSOCKET_H
mazgch 44:9d12223b78ff 2 #define TCPSOCKET_H
mazgch 44:9d12223b78ff 3
mazgch 44:9d12223b78ff 4 #include "Socket.h"
mazgch 44:9d12223b78ff 5
mazgch 44:9d12223b78ff 6 /** TCP socket connection
mazgch 44:9d12223b78ff 7 */
mazgch 44:9d12223b78ff 8 class TCPSocketConnection: public Socket
mazgch 44:9d12223b78ff 9 {
mazgch 44:9d12223b78ff 10 friend class TCPSocketServer;
mazgch 44:9d12223b78ff 11
mazgch 44:9d12223b78ff 12 public:
mazgch 44:9d12223b78ff 13 /** TCP socket connection
mazgch 44:9d12223b78ff 14 */
mazgch 44:9d12223b78ff 15 TCPSocketConnection() {}
mazgch 44:9d12223b78ff 16
mazgch 44:9d12223b78ff 17 /** Connects this TCP socket to the server
mazgch 44:9d12223b78ff 18 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
mazgch 44:9d12223b78ff 19 \param port The host's port to connect to.
mazgch 44:9d12223b78ff 20 \return 0 on success, -1 on failure.
mazgch 44:9d12223b78ff 21 */
mazgch 44:9d12223b78ff 22 int connect(const char* host, const int port)
mazgch 44:9d12223b78ff 23 {
mazgch 63:42cb563a25bc 24 if (_mdm == NULL)
mazgch 63:42cb563a25bc 25 _mdm = MDMParser::getInstance();
mazgch 54:7ba8e4c218e2 26 if (_mdm == NULL)
mazgch 54:7ba8e4c218e2 27 return -1;
mazgch 54:7ba8e4c218e2 28
mazgch 44:9d12223b78ff 29 if (_socket < 0) {
mazgch 44:9d12223b78ff 30 _socket = _mdm->socketSocket(MDMParser::IPPROTO_TCP);
mazgch 44:9d12223b78ff 31 if (_socket < 0) {
mazgch 44:9d12223b78ff 32 return -1;
mazgch 44:9d12223b78ff 33 }
mazgch 44:9d12223b78ff 34 }
mazgch 44:9d12223b78ff 35
mazgch 67:ff9472d344d4 36 _mdm->socketSetBlocking(_socket, _timeout_ms);
mazgch 44:9d12223b78ff 37 if (!_mdm->socketConnect(_socket, host, port)) {
mazgch 60:1f65abb842be 38 return -1;
mazgch 44:9d12223b78ff 39 }
mazgch 60:1f65abb842be 40 return 0;
mazgch 44:9d12223b78ff 41 }
mazgch 44:9d12223b78ff 42 /** Check if the socket is connected
mazgch 44:9d12223b78ff 43 \return true if connected, false otherwise.
mazgch 44:9d12223b78ff 44 */
mazgch 44:9d12223b78ff 45 bool is_connected(void) { return _mdm->socketIsConnected(_socket); }
mazgch 44:9d12223b78ff 46
mazgch 44:9d12223b78ff 47 /** Send data to the remote host.
mazgch 44:9d12223b78ff 48 \param data The buffer to send to the host.
mazgch 44:9d12223b78ff 49 \param length The length of the buffer to send.
mazgch 44:9d12223b78ff 50 \return the number of written bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 51 */
mazgch 44:9d12223b78ff 52 int send(char* data, int length) { return _mdm->socketSend(_socket, data, length); }
mazgch 44:9d12223b78ff 53
mazgch 44:9d12223b78ff 54 /** Send all the data to the remote host.
mazgch 44:9d12223b78ff 55 \param data The buffer to send to the host.
mazgch 44:9d12223b78ff 56 \param length The length of the buffer to send.
mazgch 44:9d12223b78ff 57 \return the number of written bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 58 */
mazgch 44:9d12223b78ff 59 int send_all(char* data, int length) { return send(data,length); }
mazgch 44:9d12223b78ff 60
mazgch 44:9d12223b78ff 61 /** Receive data from the remote host.
mazgch 44:9d12223b78ff 62 \param data The buffer in which to store the data received from the host.
mazgch 44:9d12223b78ff 63 \param length The maximum length of the buffer.
mazgch 44:9d12223b78ff 64 \return the number of received bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 65 */
mazgch 44:9d12223b78ff 66 int receive(char* data, int length) { return _mdm->socketRecv(_socket, data, length); }
mazgch 44:9d12223b78ff 67
mazgch 44:9d12223b78ff 68 /** Receive all the data from the remote host.
mazgch 44:9d12223b78ff 69 \param data The buffer in which to store the data received from the host.
mazgch 44:9d12223b78ff 70 \param length The maximum length of the buffer.
mazgch 44:9d12223b78ff 71 \return the number of received bytes on success (>=0) or -1 on failure
mazgch 44:9d12223b78ff 72 */
mazgch 44:9d12223b78ff 73 int receive_all(char* data, int length) { return receive(data,length); }
mazgch 44:9d12223b78ff 74
mazgch 44:9d12223b78ff 75 };
mazgch 44:9d12223b78ff 76
mazgch 44:9d12223b78ff 77 #endif