ClearCore Library
Loading...
Searching...
No Matches
EthernetTcpServer.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Teknic, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20 * SOFTWARE.
21 */
22
27#ifndef __ETHERNETTCPSERVER_H__
28#define __ETHERNETTCPSERVER_H__
29
30#include "EthernetTcp.h"
31#include "EthernetManager.h"
32#include "EthernetTcpClient.h"
33
34namespace ClearCore {
35
45class EthernetTcpServer : public EthernetTcp {
46
47public:
54 explicit EthernetTcpServer(uint16_t port);
55
59 void Begin();
60
72
85
99 uint32_t Send(const uint8_t *buff, uint32_t size) override;
100
111 uint32_t Send(uint8_t charToSend) {
112 return EthernetTcp::Send(charToSend);
113 }
114
125 uint32_t Send(const char *nullTermStr) {
126 return EthernetTcp::Send(nullTermStr);
127 }
128
129 using EthernetTcp::LocalPort;
130
136 bool Ready();
137
138private:
139 bool m_initialized;
140
141 // The server's listening port.
142 uint16_t m_serverPort;
143
144 // TCP state for connected clients.
145 TcpData *m_tcpDataClient[CLIENT_MAX];
146
147}; // EthernetTcpServer
148
149} // ClearCore namespace
150
151#endif // !__ETHERNETTCPSERVER_H__
ClearCore TCP client class.
Definition EthernetTcpClient.h:54
ClearCore TCP server class.
Definition EthernetTcpServer.h:45
EthernetTcpClient Accept()
Return a client with an active connection.
EthernetTcpServer(uint16_t port)
Construct a TCP server.
uint32_t Send(const uint8_t *buff, uint32_t size) override
Send data to all clients managed by the server.
uint32_t Send(const char *nullTermStr)
Send data to all clients managed by the server.
Definition EthernetTcpServer.h:125
EthernetTcpClient Available()
Return a reference to a client that has incoming data.
bool Ready()
Is the server ready to accept a client?
void Begin()
Set up the server to begin listening for incoming TCP connections.
uint32_t Send(uint8_t charToSend)
Send data to all clients managed by the server.
Definition EthernetTcpServer.h:111
Namespace to encompass the ClearCore board API.
Definition AdcManager.h:36