ESP8266 Server/Client

Gast #4837538
Hallo

folgende Situation
1 Server (als AP) / 2 Clients (späterhin 4)

Code_Snipsel (Client)
client.print (String("GET ") + "HTTP/1.1\r\n" +
                  "Host: " + "178.168.4.1" + "\r\n" +
                  "\r\n\r\n");

Server soll Daten (derzeit 1 Byte) an die beiden Clients senden;

Code_Snipsel (Server)
 if (client.connected()) {
    test = test + 1;
    client.print (test);}


Daten kommen teilweise unregelmäßig an; zwar manchmal in beiden Clients 
korrekt; aber vielfach nur in einem der beiden (abwechselnd)

Welche Möglichkeiten der Steuerung (Absicherung) muss berücksichtigt 
werden, damit in beiden Clients die Daten korrekt ankommen (müssen nicht 
gleichzeitig ankommen -- aber Übertragung muss sicher stattfinden !!!)

vielen Dank im Voraus
Günter
Gast
Da die Übertragung per TCP stattfindet, ist sie schon "sicher"!

Vermutlich liefert eine deiner Funktionen/Methoden Fehlercodes, welche 
du stupmpf ignorierst.

Klarer: Das System schreit um Hilfe/Vergebung, aber du hörst nicht zu.
Gast
Hallo Günter,

Sowie ich dich verstanden habe, senden die Clients Daten an den Server 
oder umgekehrt?
Bei Client hast du ei GET, also sendet der Client.
Im Text schreibst du aber der Server sendet, was stimmt nun?

Ich hatte auch Probleme mit HTTP auf dem ESP8266.
Vor allem, wenn mehrere Request parallel ankommen, geht ab und zu was 
verloren. Ich habe ein Server und viele Clients (>20 Stück).
Ich hatte dann von HTTP auf UDP umgestellt.
Wenn bei einem Client eine Aktor angibt, dann sendet der Client per UDP 
die Daten an den Master und der Master schaut welche Clients den Event 
"aboniert" haben und sendet diesen den Event auch per UDP.

UPD hat zwar den Nachteil, dass die Ablieferung nicht garantiert ist, 
dafür ist das Protokoll um ein vielfaches weniger Komplex als HTTP.
Auch die Übertragungszeit sinkt, da keine Verbindungsaufbau und kein 
Response benötigt wird. Bei mir dauert das Verteilen einige 
Millisekunden.

Ein weitere Vorteil ist, der Server könnte per Broadcast mit einem Call 
an alle Clients senden. Ich verwende mein Heim-WiFi - beachte noch, wenn 
der ESP ein AP erstellt, ist die Anzahl der Clients begrenzt, auch ein 
Routing ist nicht möglich.

Also schreib doch nochmal etwas genauer was du baust, du wer jetzt an 
wen sendet.
Hallo,

Bernhard BRM (Gast) mehr als Anmerkung:

dafür wäre MQTT das nahezu ideale Protokoll gewesen.
Der nötige Broker (Mosquitto als Beispiel) macht kaum Last und Anbindung 
an HTTP-Server gibt es.

Gerade Sachen wie keepAlive, QoS usw. erledigt diese Kombi sozusagen 
alleine mit kaum Aufwand und Netzwerktraffic.

Gruß aus Berlin
Michael
Gast
Hallo Bernhard BRM (Gast)

Die Clients sollen Daten beim Server abrufen;
dazu habe ich den GET-Abruf verwendet

Wikipedia:
"
GET     ist die gebräuchlichste Methode. Mit ihr wird eine Ressource 
(...) ) unter Angabe eines URI vom Server angefordert.
"

mein Server sendet darauf auch (jeweils die gleichen) Daten an die 
Clients.
diese Daten kommen sporadisch in einem der beiden Clients aber nicht an. 
(das ist mein Problem...)

*******************************************

zum Thema UDP...

was ist da zu beachten (Beispiels, Links würden genügen)

Frohe Weihnachten und viele Grüße

Günter
Gast
Günter schrieb:
> diese Daten kommen sporadisch in einem der beiden Clients aber nicht an.
> (das ist mein Problem...)
Und?
Schon die Serverlogs Untersucht?
Die Rückgaben der Methoden untersucht?
Die Debugmeldungen auf den ESP aktiviert?

Huch, sorry.....
Es kann auch sein, dass du nur jammern willst und gar nicht an einer 
Lösung interessiert bist. Dann überlese meine Beiträge bitte weiter, wie 
bisher...
Gast
Hallo Arduino Funboy

Huch, sorry.....
kann es sein, dass du da auf einem "sehr hohem Roß" sitzt ?

Wie wärs, wenn du mir - anstelle deiner nicht sehr motivierenden
Anwort - erklären würdest

wie und wo ich die Serverlogs finden und untersuchen kann?
wie und wo ich die Rückgaben der Methoden finden und untersuchen kann ?

OK ! .. die Debugmeldungen auf den ESP habe ich bereits aktiviert
kann aber leider die einzelnen Meldungen nicht interpretieren

Als  "NEWCOMER" bin ich leider auf die Hilfe anderer Leute
angewiesen.

Ich wünsche dir zum Weihnachtsfest mehr Demut...

Freundlichst
Günter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.