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 your client boards creates a WiFiClient and connects it to IP address and port of the WiFiServer on your 'server' board, then you get there a WiFiClient from server.available() and this two WiFiClient objects are connected. What you write/print on one side you read only from the WiFiClient object on the other side.
client socket
if (client.connect(serverIP, PORT)) {
client.print("request
");
String response = client.readStringUntil('
');
Serial.println(response);
client.stop();
}
server side
WiFiClient client = server.available();
if (client && client.connected()) {
String request = client.readStringUntil('
');
Serial.println(request);
client.print("response
");
client.stop();
}
see the ChatServer example for a WiFiServer example
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…