Hello,
I tried to make WiFi Access point and webserver.
Both Access Point and Web Server works but still it keeps printing a lot of internal error hundreds of times to the serial monitor over and over filling up the screen.
Here is the error it keeps printing to the serial monitor:
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
[ERROR] get_available Accept connection failed
.
.
.
Here is my code, please let me know what is the error causing it to print that.
I need nonblocking mode because my code is doing other things at the same time its doing the webserver.
WiFiServer server(80);
void setup()
{
WiFi.apbegin("MyWifi", "1234567890", "1", 0);
server.setNonBlockingMode();
server.begin();
}
void loop()
{
WiFiClient client = server.available(); // listen for incoming clients
if (client) { // if you get a client,
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println();
// the content of the HTTP response follows the header:
client.print("Click <a href=\"/H\">here</a> turn the LED on LED_PIN on<br>");
client.print("Click <a href=\"/L\">here</a> turn the LED on LED_PIN off<br>");
// The HTTP response ends with another blank line:
client.println();
// break out of the while loop:
break;
} else { // if you got a newline, then clear currentLine:
currentLine = "";
}
} else if (c != '\r') { // if you got anything else but a carriage return character,
currentLine += c; // add it to the end of the currentLine
}
// Check to see if the client request was "GET /H" or "GET /L":
if (currentLine.endsWith("GET /H")) {
digitalWrite(LED_BUILTIN_1, HIGH); // GET /H turns the LED on
}
if (currentLine.endsWith("GET /L")) {
digitalWrite(LED_BUILTIN_1, LOW); // GET /L turns the LED off
}
}
}
// close the connection:
client.stop();
}
}