- Thu Jul 02, 2020 11:01 pm
#87748
you can use TCP sockets communication. esp8266 arduino can be a server or a client.
WiFiClient object wraps a TCP socket. A normal TCP socket is connected to IP address and port.
WiFiServer starts a listening socket on a port. If server on listening socket is contacted by a remote client socket, it creates a local socket connected with the remote client socket on a free port and returns a WiFiClient object wrapping the socket. Everything you write or print to a WiFiClient is send to that one remote socket.
If one of a client socket connects it to IP address and port of the server, then you get there a socket there and this two sockets are connected. What you write/print on one side, you read on the other side.
client socket
if (client.connect(serverIP, PORT)) {
client.print("request\n");
String response = client.readStringUntil('\n');
Serial.println(response);
client.stop();
}
server side
WiFiClient client = server.available();
if (client && client.connected()) {
String request = client.readStringUntil('\n');
Serial.println(request);
client.print("response\n");
client.stop();
}