@@ -18,16 +18,28 @@ class NetworkServer : public Server
1818 // ------------------------------
1919 // Create the network server
2020 // ------------------------------
21- NetworkServer (Server * server, uint8_t networkType, uint16_t port)
21+ NetworkServer (Server * server, uint8_t networkType, uint16_t port) :
22+ _friendClass (true ),
23+ _server{server},
24+ _networkType{networkType},
25+ _port{port}
2226 {
23- _friendClass = true ;
24- _server = server;
25- _networkType = networkType;
26- _port = port;
27+ #if defined(COMPILE_ETHERNET)
2728 if (_networkType == NETWORK_TYPE_ETHERNET)
29+ {
2830 _client = new EthernetClient;
31+ }
2932 else
33+ #endif // COMPILE_ETHERNET
34+ #if defined(COMPILE_WIFI)
35+ {
3036 _client = new WiFiClient;
37+ }
38+ #else // COMPILE_WIFI
39+ {
40+ _client = nullptr ;
41+ }
42+ #endif // COMPILE_WIFI
3143 }
3244
3345 // ------------------------------
@@ -52,26 +64,19 @@ class NetworkServer : public Server
5264 delete _server;
5365 _server = nullptr ;
5466 }
55- };
67+ if (_client)
68+ delete _client;
69+ _client = nullptr ;
70+ }
5671
5772 // ------------------------------
5873 // Begin the network server
5974 // ------------------------------
6075
61- void beginMe ()
76+ void begin ()
6277 {
63- Serial.println (" beginMe start" ); Serial.flush ();
64- #if defined(COMPILE_ETHERNET)
65- if (_networkType == NETWORK_TYPE_ETHERNET)
66- if (_server)
67- ((EthernetServer *)_server)->begin ();
68- #endif // COMPILE_WIFI
69- #if defined(COMPILE_WIFI)
70- if (_networkType == NETWORK_TYPE_WIFI)
71- if (_server)
72- ((WiFiServer *)_server)->begin ();
73- #endif // COMPILE_WIFI
74- Serial.println (" beginMe end" ); Serial.flush ();
78+ if (_server)
79+ _server->begin ();
7580 }
7681
7782 // ------------------------------
@@ -84,8 +89,6 @@ class NetworkServer : public Server
8489 if (_networkType == NETWORK_TYPE_ETHERNET)
8590 if (_server)
8691 {
87- Serial.printf (" _server : %p\r\n " , (void *)_server);
88- Serial.flush ();
8992 *_client = ((EthernetServer *)_server)->available ();
9093 return _client;
9194 }
@@ -132,24 +135,14 @@ class NetworkServer : public Server
132135
133136 operator bool ()
134137 {
135- #if defined(COMPILE_ETHERNET)
136- if (_networkType == NETWORK_TYPE_ETHERNET)
137- if (_server)
138- return ((EthernetServer *)_server);
139- #endif // COMPILE_WIFI
140- #if defined(COMPILE_WIFI)
141- if (_networkType == NETWORK_TYPE_WIFI)
142- if (_server)
143- return ((WiFiServer *)_server);
144- #endif // COMPILE_WIFI
145- return false ;
138+ return _server;
146139 }
147140
148141 // ------------------------------
149142 // Stop the network server
150143 // ------------------------------
151144
152- void stop ()
145+ void stop () // WiFiServer only - EthernetServer has no stop method
153146 {
154147#if defined(COMPILE_WIFI)
155148 if (_networkType == NETWORK_TYPE_WIFI)
@@ -164,16 +157,8 @@ class NetworkServer : public Server
164157
165158 size_t write (uint8_t b)
166159 {
167- #if defined(COMPILE_ETHERNET)
168- if (_networkType == NETWORK_TYPE_ETHERNET)
169- if (_server)
170- return ((EthernetServer *)_server)->write (b);
171- #endif // COMPILE_WIFI
172- #if defined(COMPILE_WIFI)
173- if (_networkType == NETWORK_TYPE_WIFI)
174- if (_server)
175- return ((WiFiServer *)_server)->write (b);
176- #endif // COMPILE_WIFI
160+ if (_server)
161+ return _server->write (b);
177162 return 0 ;
178163 }
179164
@@ -183,16 +168,8 @@ class NetworkServer : public Server
183168
184169 size_t write (const uint8_t *buf, size_t size)
185170 {
186- #if defined(COMPILE_ETHERNET)
187- if (_networkType == NETWORK_TYPE_ETHERNET)
188- if (_server)
189- return ((EthernetServer *)_server)->write (buf, size);
190- #endif // COMPILE_WIFI
191- #if defined(COMPILE_WIFI)
192- if (_networkType == NETWORK_TYPE_WIFI)
193- if (_server)
194- return ((WiFiServer *)_server)->write (buf, size);
195- #endif // COMPILE_WIFI
171+ if (_server)
172+ return _server->write (buf, size);
196173 return 0 ;
197174 }
198175
@@ -209,23 +186,23 @@ class NetworkServer : public Server
209186#ifdef COMPILE_ETHERNET
210187class NetworkEthernetServer : public NetworkServer
211188{
212- private :
189+ protected :
213190
214- EthernetServer * _ethernetServer;
191+ EthernetServer _ethernetServer;
215192
216193 public:
217194
218- NetworkEthernetServer (uint16_t port) :
219- _ethernetServer{new EthernetServer (port)},
220- NetworkServer (_ethernetServer, NETWORK_TYPE_ETHERNET, port)
195+ NetworkEthernetServer (uint16_t port) :
196+ _ethernetServer{EthernetServer (port)},
197+ NetworkServer (& _ethernetServer, NETWORK_TYPE_ETHERNET, port)
221198 {
222199 }
223200
224- // NetworkEthernetServer(EthernetServer& server, uint16_t port) :
225- // _ethernetServer{server},
226- // NetworkServer(_ethernetServer, NETWORK_TYPE_ETHERNET, port)
227- // {
228- // }
201+ NetworkEthernetServer (EthernetServer& server, uint16_t port) :
202+ _ethernetServer{server},
203+ NetworkServer (& _ethernetServer, NETWORK_TYPE_ETHERNET, port)
204+ {
205+ }
229206
230207 ~NetworkEthernetServer ()
231208 {
0 commit comments