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?