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.
Fork of WIZnetInterface by
Socket/TCPSocketConnection.h@30:b67bcc6ee0bb, 2017-06-29 (annotated)
- Committer:
- sgnezdov
- Date:
- Thu Jun 29 18:58:37 2017 +0000
- Revision:
- 30:b67bcc6ee0bb
- Parent:
- 0:6f28332c466f
Adjusted WIZnetInterface initialization to properly work with DHCP no-DHCP and use hardware mac address option
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Soohwan Kim |
0:6f28332c466f | 1 | /* Copyright (C) 2012 mbed.org, MIT License |
Soohwan Kim |
0:6f28332c466f | 2 | * |
Soohwan Kim |
0:6f28332c466f | 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software |
Soohwan Kim |
0:6f28332c466f | 4 | * and associated documentation files (the "Software"), to deal in the Software without restriction, |
Soohwan Kim |
0:6f28332c466f | 5 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, |
Soohwan Kim |
0:6f28332c466f | 6 | * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is |
Soohwan Kim |
0:6f28332c466f | 7 | * furnished to do so, subject to the following conditions: |
Soohwan Kim |
0:6f28332c466f | 8 | * |
Soohwan Kim |
0:6f28332c466f | 9 | * The above copyright notice and this permission notice shall be included in all copies or |
Soohwan Kim |
0:6f28332c466f | 10 | * substantial portions of the Software. |
Soohwan Kim |
0:6f28332c466f | 11 | * |
Soohwan Kim |
0:6f28332c466f | 12 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING |
Soohwan Kim |
0:6f28332c466f | 13 | * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
Soohwan Kim |
0:6f28332c466f | 14 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
Soohwan Kim |
0:6f28332c466f | 15 | * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
Soohwan Kim |
0:6f28332c466f | 16 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Soohwan Kim |
0:6f28332c466f | 17 | */ |
Soohwan Kim |
0:6f28332c466f | 18 | |
Soohwan Kim |
0:6f28332c466f | 19 | #ifndef TCPSOCKET_H |
Soohwan Kim |
0:6f28332c466f | 20 | #define TCPSOCKET_H |
Soohwan Kim |
0:6f28332c466f | 21 | |
Soohwan Kim |
0:6f28332c466f | 22 | #include "Socket.h" |
Soohwan Kim |
0:6f28332c466f | 23 | #include "Endpoint.h" |
Soohwan Kim |
0:6f28332c466f | 24 | |
Soohwan Kim |
0:6f28332c466f | 25 | /** |
Soohwan Kim |
0:6f28332c466f | 26 | TCP socket connection |
Soohwan Kim |
0:6f28332c466f | 27 | */ |
Soohwan Kim |
0:6f28332c466f | 28 | class TCPSocketConnection: public Socket, public Endpoint { |
Soohwan Kim |
0:6f28332c466f | 29 | friend class TCPSocketServer; |
Soohwan Kim |
0:6f28332c466f | 30 | |
Soohwan Kim |
0:6f28332c466f | 31 | public: |
Soohwan Kim |
0:6f28332c466f | 32 | /** TCP socket connection |
Soohwan Kim |
0:6f28332c466f | 33 | */ |
Soohwan Kim |
0:6f28332c466f | 34 | TCPSocketConnection(); |
Soohwan Kim |
0:6f28332c466f | 35 | |
Soohwan Kim |
0:6f28332c466f | 36 | /** Connects this TCP socket to the server |
Soohwan Kim |
0:6f28332c466f | 37 | \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS. |
Soohwan Kim |
0:6f28332c466f | 38 | \param port The host's port to connect to. |
Soohwan Kim |
0:6f28332c466f | 39 | \return 0 on success, -1 on failure. |
Soohwan Kim |
0:6f28332c466f | 40 | */ |
Soohwan Kim |
0:6f28332c466f | 41 | int connect(const char* host, const int port); |
Soohwan Kim |
0:6f28332c466f | 42 | |
Soohwan Kim |
0:6f28332c466f | 43 | /** Check if the socket is connected |
Soohwan Kim |
0:6f28332c466f | 44 | \return true if connected, false otherwise. |
Soohwan Kim |
0:6f28332c466f | 45 | */ |
Soohwan Kim |
0:6f28332c466f | 46 | bool is_connected(void); |
Soohwan Kim |
0:6f28332c466f | 47 | |
Soohwan Kim |
0:6f28332c466f | 48 | /** Send data to the remote host. |
Soohwan Kim |
0:6f28332c466f | 49 | \param data The buffer to send to the host. |
Soohwan Kim |
0:6f28332c466f | 50 | \param length The length of the buffer to send. |
Soohwan Kim |
0:6f28332c466f | 51 | \return the number of written bytes on success (>=0) or -1 on failure |
Soohwan Kim |
0:6f28332c466f | 52 | */ |
Soohwan Kim |
0:6f28332c466f | 53 | int send(char* data, int length); |
Soohwan Kim |
0:6f28332c466f | 54 | |
Soohwan Kim |
0:6f28332c466f | 55 | /** Send all the data to the remote host. |
Soohwan Kim |
0:6f28332c466f | 56 | \param data The buffer to send to the host. |
Soohwan Kim |
0:6f28332c466f | 57 | \param length The length of the buffer to send. |
Soohwan Kim |
0:6f28332c466f | 58 | \return the number of written bytes on success (>=0) or -1 on failure |
Soohwan Kim |
0:6f28332c466f | 59 | */ |
Soohwan Kim |
0:6f28332c466f | 60 | int send_all(char* data, int length); |
Soohwan Kim |
0:6f28332c466f | 61 | |
Soohwan Kim |
0:6f28332c466f | 62 | /** Receive data from the remote host. |
Soohwan Kim |
0:6f28332c466f | 63 | \param data The buffer in which to store the data received from the host. |
Soohwan Kim |
0:6f28332c466f | 64 | \param length The maximum length of the buffer. |
Soohwan Kim |
0:6f28332c466f | 65 | \return the number of received bytes on success (>=0) or -1 on failure |
Soohwan Kim |
0:6f28332c466f | 66 | */ |
Soohwan Kim |
0:6f28332c466f | 67 | int receive(char* data, int length); |
Soohwan Kim |
0:6f28332c466f | 68 | |
Soohwan Kim |
0:6f28332c466f | 69 | /** Receive all the data from the remote host. |
Soohwan Kim |
0:6f28332c466f | 70 | \param data The buffer in which to store the data received from the host. |
Soohwan Kim |
0:6f28332c466f | 71 | \param length The maximum length of the buffer. |
Soohwan Kim |
0:6f28332c466f | 72 | \return the number of received bytes on success (>=0) or -1 on failure |
Soohwan Kim |
0:6f28332c466f | 73 | */ |
Soohwan Kim |
0:6f28332c466f | 74 | int receive_all(char* data, int length); |
Soohwan Kim |
0:6f28332c466f | 75 | |
Soohwan Kim |
0:6f28332c466f | 76 | private: |
Soohwan Kim |
0:6f28332c466f | 77 | bool _is_connected; |
Soohwan Kim |
0:6f28332c466f | 78 | }; |
Soohwan Kim |
0:6f28332c466f | 79 | |
Soohwan Kim |
0:6f28332c466f | 80 | #endif |