WiFiEsp.h Server e Client - Distinguere richieste da risposte

Standardoil:
Qui mi sono perso

Era solo un mio vaneggio, nel codice, semplificato:

WiFiEspServer ArduinoServer(80);
WiFiEspClient webClient;
void setup() {
  [b]WiFi.init(&Serial1);[/b]
}

void loop() {
  WiFiEspClient serverConnection = [b]ArduinoServer.available()[/b]; 
    if (serverConnection) {
      Serial.println("New client");

  while ([b]webClient.available()[/b]) {
    char c = webClient.read();
    Serial.write(c);
  }
}

quindi evidentemente gestisce lui server/client e sa che arrivano dal canale wifi (cioè Serial1)
se avessi un qualche modo per dirgli che il server comunica sulla Serial1 e il client sulla Serial2 non avrei il problema che me li confonde.... credo. Boh.

Comunque cercando di capire la libreria WifiEspServer.cpp trovo:

WiFiEspClient WiFiEspServer::available(byte* status)
{
	// TODO the original method seems to handle automatic server restart

	int bytes = EspDrv::availData(0);
	if (bytes>0)
	{
		LOGINFO1(F("New client"), EspDrv::_connId);
		[b]WiFiEspClass::allocateSocket(EspDrv::_connId);[b][/b][/b]
		WiFiEspClient client(EspDrv::_connId);
		return client;
	}

    return WiFiEspClient(255);
}

Ma allora attribuisce socket diversi (_connId) ? E quindi perché interpreta la risposta al client come una nuova chiamata?