Da ich nur Halbwissen zu Netzwerken und Arduino-Programmierung habe, müsste ich nochmals um Unterstützung bitten. Ich habe derzeit 3 UDP-Clients die sporadisch Daten liefern. Diese Daten möchte ich mit einem UDP-Server sammeln und auswerten. Wenn ich es richtig verstanden habe ist das weder Unicast, noch Multicast oder Broadcast. Vielleicht eine Dumme Frage, aber kann man den Server so einstellen, dass es er generell auf UPD-Messages von beliebigen IPs hört ? Ein Hobbyprojekt mit UDP-Multicast habe ich erstellen können, aber zum beschriebenen Problem habe ich eigentlich nichts in meinen Dokus zu Arduino-Programmierung finden können. Kann mir da bitte jemand helfen ? Danke.
Der ESP8266 unterstützt Multicast, dafür gibt es extra ein paar Methoden. Ich denke, er empfängt generell UDP pakete von beliebigen Quellen. Mit remoteIP() und remotePort() kannst du diese abfragen. https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/src/WiFiUdp.h
:
Bearbeitet durch User
Bot N. schrieb: > Wenn ich es richtig verstanden habe ist das weder Unicast, noch > Multicast oder Broadcast. Doch, das ist schon Unicast. https://de.m.wikipedia.org/wiki/Unicast Sende einfach von einem Client eine UDP-Nachricht an den Server. Das geht dann auch von allen Clients aus. Du musst nur drauf achten, dass die Sendungen sich nicht überschneiden. Da wird im Protokoll nichts überprüft. Das musst du in deinem Programm selbst handeln.
Dieter S. schrieb: > Doch, das ist schon Unicast. https://de.m.wikipedia.org/wiki/Unicast Super Danke. Aufgrund deines Hinweises habe ich ein Beispiel gefunden wie ich den Server anwenden muss. Leuchtet mir dann auch ein. Das mit der Überschneidung ist mir klar, kann ich aber nicht verhindern. Damit kann ich aber leben, dann fehlen mir gelegentlich paar Daten. Vielen Dank nochmals für den Tipp.
:
Bearbeitet durch User
Bot N. schrieb: > Das mit der Überschneidung ist mir klar, Ich löse das, indem ich unterschiedliche Intervalle zum Senden nutze und mehrfach hintereinander sende.
Dieter S. schrieb: > Ich löse das, indem ich unterschiedliche Intervalle zum Senden nutze und > mehrfach hintereinander sende. Würde ich normalerweise auch so machen. Leider kann ich aber bei den Clients hier nichts diesbezüglich verändern, da es gekaufte Teile sind bei denen ich die SW nicht verändern kann. Dazu kommt noch dass die Aussendung unterschiedlich getriggert werden kann. Leider.
:
Bearbeitet durch User
Bot N. schrieb: > Leider kann ich aber bei den Clients hier nichts diesbezüglich > verändern, Ok, das konnte ich allerdings nicht wissen. Da musst du mit den Einstellungen leben.
Bot N. schrieb: > Leider kann ich aber bei den Clients hier nichts diesbezüglich > verändern, da es gekaufte Teile sind bei denen ich die SW nicht > verändern kann. Wer UDP Pakete mit Daten verschickt, ohne eine Empfangsbestätigung, dem sind die Daten nicht wichtig. Oder die Daten sind allgemein nicht wichtig. Da kann man auch einen Stapel Postkarten in die U-Bahn schmeißen und hoffen dass die jemand in den Kasten wirft.
Norbert schrieb: > Da kann man auch einen Stapel Postkarten in die U-Bahn schmeißen und > hoffen dass die jemand in den Kasten wirft. Ich vergleiche UDP auch gerne mit Postkarten, aber ganz so schlecht ist es nicht. Im lokalen Netz kommen UDP Pakete fast immer an. Du musst es also mit einer Postkarte vergleichen, die du in den Briefkasten der Post wirfst. Dass zwei Clients gleichzeitig senden könnten ist meiner Meinung nach kein "problem" bei/von UDP, weil Kollisionen auf einer anderen Ebene erkannt und behoben werden.
:
Bearbeitet durch User
Sherlock 🕵🏽♂️ schrieb: > Dass zwei Clients gleichzeitig senden könnten ist meiner Meinung nach > kein "problem" bei/von UDP, weil Kollisionen auf einer anderen Ebene > erkannt und behoben werden. Wir haben – das ist schon Jahre her – mal kräftig Daten im Netz generiert und gemessen was (und wann) vom UDP Traffic tatsächlich noch ankam. War ein eye-opener. Aber ja, wenn die Daten unwichtig sind und man verlorene Pakete getrost ignorieren kann, dann isses die einfachste Möglichkeit. Dagegen spricht allerdings: Bot N. schrieb: > Diese Daten > möchte ich mit einem UDP-Server sammeln und auswerten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.