a library to use GPRS like ethernet or wifi, which makes it possible to connect to the internet with your GPRS module

Dependencies:   BufferedSerial

Dependents:   ThinkSpeak_Test roam_v1 roam_v2 finalv3

Fork of GPRSInterface by wei zou

Committer:
lawliet
Date:
Tue Feb 25 02:52:48 2014 +0000
Revision:
0:8ccbd963e74d
Child:
1:7298a7950f65
Initial version of GPRS Interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lawliet 0:8ccbd963e74d 1 /*
lawliet 0:8ccbd963e74d 2 TCPSocketConnection.h
lawliet 0:8ccbd963e74d 3 2014 Copyright (c) Seeed Technology Inc. All right reserved.
lawliet 0:8ccbd963e74d 4
lawliet 0:8ccbd963e74d 5 Author:lawliet zou(lawliet.zou@gmail.com)
lawliet 0:8ccbd963e74d 6 2014-2-24
lawliet 0:8ccbd963e74d 7
lawliet 0:8ccbd963e74d 8 This library is free software; you can redistribute it and/or
lawliet 0:8ccbd963e74d 9 modify it under the terms of the GNU Lesser General Public
lawliet 0:8ccbd963e74d 10 License as published by the Free Software Foundation; either
lawliet 0:8ccbd963e74d 11 version 2.1 of the License, or (at your option) any later version.
lawliet 0:8ccbd963e74d 12
lawliet 0:8ccbd963e74d 13 This library is distributed in the hope that it will be useful,
lawliet 0:8ccbd963e74d 14 but WITHOUT ANY WARRANTY; without even the implied warranty of
lawliet 0:8ccbd963e74d 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
lawliet 0:8ccbd963e74d 16 Lesser General Public License for more details.
lawliet 0:8ccbd963e74d 17
lawliet 0:8ccbd963e74d 18 You should have received a copy of the GNU Lesser General Public
lawliet 0:8ccbd963e74d 19 License along with this library; if not, write to the Free Software
lawliet 0:8ccbd963e74d 20 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
lawliet 0:8ccbd963e74d 21 */
lawliet 0:8ccbd963e74d 22
lawliet 0:8ccbd963e74d 23 #ifndef TCPSOCKET_H
lawliet 0:8ccbd963e74d 24 #define TCPSOCKET_H
lawliet 0:8ccbd963e74d 25
lawliet 0:8ccbd963e74d 26 #include "Socket.h"
lawliet 0:8ccbd963e74d 27 #include "Endpoint.h"
lawliet 0:8ccbd963e74d 28
lawliet 0:8ccbd963e74d 29 /**
lawliet 0:8ccbd963e74d 30 TCP socket connection
lawliet 0:8ccbd963e74d 31 */
lawliet 0:8ccbd963e74d 32 class TCPSocketConnection: public Socket, public Endpoint
lawliet 0:8ccbd963e74d 33 {
lawliet 0:8ccbd963e74d 34 friend class TCPSocketServer;
lawliet 0:8ccbd963e74d 35
lawliet 0:8ccbd963e74d 36 public:
lawliet 0:8ccbd963e74d 37 /** TCP socket connection
lawliet 0:8ccbd963e74d 38 */
lawliet 0:8ccbd963e74d 39 TCPSocketConnection();
lawliet 0:8ccbd963e74d 40
lawliet 0:8ccbd963e74d 41 /** Connects this TCP socket to the server
lawliet 0:8ccbd963e74d 42 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
lawliet 0:8ccbd963e74d 43 \param port The host's port to connect to.
lawliet 0:8ccbd963e74d 44 \return 0 on success, -1 on failure.
lawliet 0:8ccbd963e74d 45 */
lawliet 0:8ccbd963e74d 46 int connect(const char* host, const int port);
lawliet 0:8ccbd963e74d 47
lawliet 0:8ccbd963e74d 48 /** Check if the socket is connected
lawliet 0:8ccbd963e74d 49 \return true if connected, false otherwise.
lawliet 0:8ccbd963e74d 50 */
lawliet 0:8ccbd963e74d 51 bool is_connected(void);
lawliet 0:8ccbd963e74d 52
lawliet 0:8ccbd963e74d 53 /** Send data to the remote host.
lawliet 0:8ccbd963e74d 54 \param data The buffer to send to the host.
lawliet 0:8ccbd963e74d 55 \param length The length of the buffer to send.
lawliet 0:8ccbd963e74d 56 \return the number of written bytes on success (>=0) or -1 on failure
lawliet 0:8ccbd963e74d 57 */
lawliet 0:8ccbd963e74d 58 int send(char* data, int length);
lawliet 0:8ccbd963e74d 59
lawliet 0:8ccbd963e74d 60 /** Send all the data to the remote host.
lawliet 0:8ccbd963e74d 61 \param data The buffer to send to the host.
lawliet 0:8ccbd963e74d 62 \param length The length of the buffer to send.
lawliet 0:8ccbd963e74d 63 \return the number of written bytes on success (>=0) or -1 on failure
lawliet 0:8ccbd963e74d 64 */
lawliet 0:8ccbd963e74d 65 int send_all(char* data, int length);
lawliet 0:8ccbd963e74d 66
lawliet 0:8ccbd963e74d 67 /** Receive data from the remote host.
lawliet 0:8ccbd963e74d 68 \param data The buffer in which to store the data received from the host.
lawliet 0:8ccbd963e74d 69 \param length The maximum length of the buffer.
lawliet 0:8ccbd963e74d 70 \return the number of received bytes on success (>=0) or -1 on failure
lawliet 0:8ccbd963e74d 71 */
lawliet 0:8ccbd963e74d 72 int receive(char* data, int length);
lawliet 0:8ccbd963e74d 73
lawliet 0:8ccbd963e74d 74 /** Receive all the data from the remote host.
lawliet 0:8ccbd963e74d 75 \param data The buffer in which to store the data received from the host.
lawliet 0:8ccbd963e74d 76 \param length The maximum length of the buffer.
lawliet 0:8ccbd963e74d 77 \return the number of received bytes on success (>=0) or -1 on failure
lawliet 0:8ccbd963e74d 78 */
lawliet 0:8ccbd963e74d 79 int receive_all(char* data, int length);
lawliet 0:8ccbd963e74d 80 };
lawliet 0:8ccbd963e74d 81
lawliet 0:8ccbd963e74d 82 #endif