Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Smart-WiFly-WebServer PUB_WiflyInterface_Demo
Fork of WiflyInterface by
TCPSocketConnection.h
00001 /* Copyright (C) 2012 mbed.org, MIT License 00002 * 00003 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 00004 * and associated documentation files (the "Software"), to deal in the Software without restriction, 00005 * including without limitation the rights to use, copy, modify, merge, publish, distribute, 00006 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is 00007 * furnished to do so, subject to the following conditions: 00008 * 00009 * The above copyright notice and this permission notice shall be included in all copies or 00010 * substantial portions of the Software. 00011 * 00012 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING 00013 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00014 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 00015 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00016 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00017 * 00018 * Changes relative to mbed official version and others as identified 00019 * in the thread http://mbed.org/forum/team-165-components-community/topic/4844/?page=1#comment-24108 00020 * TCPSocketConnection: 00021 * @li Improve documentation 00022 * @li revised the blocking / non-blocking mode 00023 * @li derived from 4:0bcec6272784 00024 */ 00025 00026 #ifndef TCPSOCKET_H 00027 #define TCPSOCKET_H 00028 00029 #include "Socket.h" 00030 #include "Endpoint.h" 00031 00032 /** 00033 TCP socket connection 00034 */ 00035 class TCPSocketConnection: public Socket, public Endpoint { 00036 00037 public: 00038 /** TCP socket connection 00039 */ 00040 TCPSocketConnection(); 00041 00042 /** Connects this TCP socket to the server 00043 @param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS. 00044 @param port The host's port to connect to. 00045 @return 0 on success, -1 on failure. 00046 */ 00047 int connect(const char* host, const int port); 00048 00049 /** Check if the socket is connected 00050 @return true if connected, false otherwise. 00051 */ 00052 bool is_connected(void); 00053 00054 /** Send data to the remote host. 00055 @param data The buffer to send to the host. 00056 @param length The length of the buffer to send. 00057 @return the number of written bytes on success (>=0) or -1 on failure 00058 */ 00059 int send(const char * data, int length); 00060 00061 /** Send all the data to the remote host. 00062 @param data The buffer to send to the host. 00063 @param length The length of the buffer to send. 00064 @return the number of written bytes on success (>=0) or -1 on failure 00065 */ 00066 int send_all(const char * data, int length); 00067 00068 /** Receive data from the remote host. 00069 00070 When non-blocking, it waits up to the timeout for anything to read. 00071 When blocking, it does not wait. 00072 In either mode, it can receive up to length bytes. 00073 00074 @note This can mean that it receives 0 to just a few chars at a time. 00075 00076 @param data The buffer in which to store the data received from the host. 00077 @param length The maximum length of the buffer. 00078 @return the number of received bytes on success (>=0) or -1 on failure 00079 or closed connection. 00080 */ 00081 int receive(char* data, int length); 00082 00083 /** Receive ALL the data from the remote host. 00084 00085 When non-blocking, it reads everything it can until the timeout. 00086 When blocking, it pauses until it has read the prescribed length. 00087 00088 @param data The buffer in which to store the data received from the host. 00089 @param length The maximum length of the buffer. 00090 @return the number of received bytes on success (>=0) or -1 on failure 00091 or closed connection. 00092 */ 00093 int receive_all(char* data, int length); 00094 }; 00095 00096 #endif
Generated on Tue Jul 12 2022 16:14:58 by
1.7.2
