forked from arduino/ArduinoCore-mbed
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWiFiServer.cpp
44 lines (36 loc) · 897 Bytes
/
WiFiServer.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "WiFiServer.h"
#include "WiFiClient.h"
extern WiFiClass WiFi;
#ifndef WIFI_TCP_BUFFER_SIZE
#define WIFI_TCP_BUFFER_SIZE 1508
#endif
arduino::WiFiServer::WiFiServer(uint16_t port) {
_port = port;
}
uint8_t arduino::WiFiServer::status() {
return 0;
}
void arduino::WiFiServer::begin() {
if (sock == NULL) {
sock = new TCPSocket();
((TCPSocket*)sock)->open(WiFi.getNetwork());
}
sock->bind(_port);
sock->listen(5);
}
size_t arduino::WiFiServer::write(uint8_t c) {
sock->send(&c, 1);
}
size_t arduino::WiFiServer::write(const uint8_t *buf, size_t size) {
sock->send(buf, size);
}
arduino::WiFiClient arduino::WiFiServer::available(uint8_t* status) {
WiFiClient client;
nsapi_error_t error;
TCPSocket* clientSocket = sock->accept(&error);
if(status != nullptr) {
*status = error == NSAPI_ERROR_OK ? 1 : 0;
}
client.setSocket(clientSocket);
return client;
}