Die Frage im Titel ist etwas uneindeutig sonst wird die Zeile zu lang. "Server" ist hier im Kontext ein Partner im Heimnetz den man Daten schickt. Hier die genaue Fragestellung: Ist-Zustand: Ein STM32 Controller mit LwIP (UDP aktiviert, Server) ist im Heimnetz angeschlossen. Im einfachsten Fall besteht das Heimnetz aus Fritzbox, Home-PC und STM32 Controller, evtl mehrere. Der STM kann dort problemlos Daten empfangen und dem Sender (hier der Home-PC) auch Daten zurücksenden (Echo Server). Dazu braucht er keine eigene Adress-Findung da er ja selbst angesprochen wird und damit weiss woher ein Request bzw. Daten kommen. Der Home-PC kann Daten zum STM sowohl über IP-Adresse als auch über den Netzwerk- Namen senden. Der STM32 hat DHCP in LwIP aktiviert und kann so immer über den Namen gefunden/angesprochen werden. Anders herum funktioniert das sicher auch: der STM32 schickt von sich aus (jetzt als UDP "Client") Daten an ein gewünschtes Ziel wenn dessen IP-Adresse bekannt ist. Die Funktionalität ist im vorangegangenem Absatz bereits enthalten wo ein Echo zurückgesendet wird. Jetzt wird es für mich unklar: mein STM32 Controller mit LwIP soll Daten an ein Ziel im Heimnetz senden. Da sich die IP-Adressen laufend ändern können ist die Adresse des Ziels (entweder Home-PC oder weiterer Controller) nicht bekannt und es sollen auch keine festen Adressen vergeben werden. Also soll/muss die Adresse aktuell über den Netzwerk-Namen ermittelt werden. Die Namen sind im Netzwerk bekannt, die Fritzbox vergibt ja über DHCP die IP-Adressen zu den Beteiligten (Namen) im Heimnetz. Nur: welcher Mechanismus liefert mir im LwIP-Gefüge die Auflösung von bekannten Netzwerk-Namen zur gewünschten IP-Adresse? LwIP ist ja in diesem Fall nicht der Nameserver sondern die Fritzbox. Meine Suche diesbezüglich brachte keinen Erfolg. Die LwIP- Programmbeispiele bringen auch keine Aufklärung. Übliche Aufrufe für TCP oder UDP funktionieren ja nur über die IP-Adresse, nicht über Netzwerk-Namen. Nach meinem Verständnis muss ich mir in LwIP - wie auch immer - erst die Zieladresse "besorgen" um diese dann in einem TCP oder UDP Request zu benutzen. Geht das transparent wenn man das Socket-API benutzt?
Wastl schrieb: > Nur: welcher Mechanismus liefert mir im LwIP-Gefüge die Auflösung > von bekannten Netzwerk-Namen zur gewünschten IP-Adresse? Ganz normal DNS: dns_gethostbyname --> https://www.nongnu.org/lwip/2_1_x/group__dns.html#ga1e040ec38166dc9bfcc3473aab0c799f Die FritzBox verteilt ja nicht nur IP-Adressen per DHCP, sondern gibt sich darüber auch als DNS-Server zu erkennen. Dafür sollte LWIP_DHCP_MAX_DNS_SERVERS > 0 sein (https://www.nongnu.org/lwip/2_0_x/group__lwip__opts__dhcp.html#ga60ccc20fbb08be24b5d5f599dd47a6a6).
Martin H. schrieb: > Ganz normal DNS: dns_gethostbyname Danke dafür. Soweit war ich schon, bekam aber immer Fehlercodes!=0 zurück. Martin H. schrieb: > Dafür sollte LWIP_DHCP_MAX_DNS_SERVERS > 0 sein Das könnte der Knackpunkt sein dass ich keinen erfolgreichen Call absetzen konnte. Ich war dann bisher der Meinung die Funktionen beziehen sich auf einen LwIP-internen DNS.
LWIP hat keinen internen DNS-Server (würde auch wenig Sinn ergeben), und braucht daher zur Namensauflösung zwingend einen externen DNS-Server. Der ist in deinem Fall die FritzBox.
Harry L. schrieb: > LWIP hat keinen internen DNS-Server (würde auch wenig Sinn ergeben) Ich dachte das würde dann Sinn ergeben wenn ich ein Netzwerk aus Nur-LwIP-Controllern habe in dem sonst kein DNS vorhanden ist, also ohne PC und Fritzbox.
Wastl schrieb: > Ich dachte das würde dann Sinn ergeben wenn ich ein Netzwerk aus > Nur-LwIP-Controllern habe in dem sonst kein DNS vorhanden ist, > also ohne PC und Fritzbox. Kann man natürlich machen, aber in so einem Sonderfall musst du den Server eben selbst programmieren und natürlich auch die Host-Tabellen selbst pflegen. Letzteres macht bei dir eben der DHCP-Server in der FritzBox automatisch.
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.