Go Down

Topic: Wie blockierungsfreies "client.connect" (Read 503 times) previous topic - next topic

ElEspanol

Dec 25, 2015, 03:57 pm Last Edit: Dec 25, 2015, 03:58 pm by ElEspanol
Die Zeile
Code: [Select]
if (client.connect(server, 80)) // Verbindung zum Server aufbauenblockiert, solange bis die Verbindung aufgebaut ist. Wenn der Server nicht da ist, kann das recht lange dauern.
Wie kann man das elegant umschiffen?

Gawan

Ich mach das so:

Code: [Select]

if (!client.connect(host, httpPort)) {
      Serial.println("Connection failed");
      Serial.println();
      return;
    }
    else
    {
      Serial.println("Connected ...");
    }

ElEspanol

Eben. Das ist ja genau der Punkt. Wenn der Server nicht (bzw. nicht sofort) antwortet, blockiert es.

Gawan

Bei mir ned und ich hab das ganze mit Server ein- und ausschalten getestet

peter_de

Eben. Das ist ja genau der Punkt. Wenn der Server nicht (bzw. nicht sofort) antwortet, blockiert es.
So ist es. client.connect(... , ...) kann man leider keinen Timeout mitgeben. So dauert es dann bis zu 2 Sekunden bis Antwort kommt.

#4 "The simpler fix" hat mir geholfen.

Gruß
Peter
Kaum macht man Etwas richtig, funktioniert es auch!

ElEspanol

Das hört sich doch schon einiges besser an.

Go Up