Hola a todos
Tengo un programa donde configuro mi ESP32 como servidor y envió datos generados aleatoriamente, el problema es que solo puedo conectar 1 cliente a la vez, lo que quiero es que se puedan conectar múltiples clientes y todos reciban la misma información,
pongo el código que tengo en mi ESP32 como servidor
#include <WiFi.h>
const char* ssid = "SSID";
const char* password = "Password";
char data[9];
WiFiServer wifiServer(80);
void setup() {
Serial.begin(115200);
delay(1000);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando a WiFi..");
}
Serial.println("Conectado a la red WiFi network");
Serial.println(WiFi.localIP());
wifiServer.begin();
}
void loop() {
WiFiClient client = wifiServer.available();
if (client) {
while(client.connected()) {
//Serial.println("Client Connected");
data[0] = random(30,50);
data[1] = random(30,50);
data[2] = random(30,50);
data[3] = random(30,50);
data[4] = random(30,50);
data[5] = random(30,50);
data[6] = random(30,50);
data[7] = random(30,50);
data[8] = random(30,50);
client.write(data,9);
Serial.println(int(data[0]));
Serial.println(int(data[1]));
Serial.println(int(data[2]));
Serial.println(int(data[3]));
Serial.println(int(data[4]));
Serial.println(int(data[5]));
Serial.println(int(data[6]));
Serial.println(int(data[7]));
Serial.println(int(data[8]));
delay(1000);
}
}
}
Los clientes los estoy manejando con python
el código del cliente es el siguiente
import socket
sock = socket.socket()
host = "192.168.1.68" #ESP32 IP in local network
port = 80 #ESP32 Server Port
sock.connect((host, port))
data = ""
lista = [0,0,0,0,0,0,0,0,0]
x = 0
while True:
data = sock.recv(1)
#x = data.decode()
#y = x.split("p")
buffer = int.from_bytes(data,"big")
lista[x] = buffer
x = x + 1
if x >=9:
print(lista)
x=0
la idea es que todos los clientes tengan el mismo código y reciban los mismos datos
pero solo me permite conectar 1 cliente a la vez