Hallo, ich möchte auf einer eigenen Hardware ein MODBUS (TCP) Inteface aufsetzen. Dazu arbeite ich gerade mit dem STM32F469-I EVAL Board und dem UM1713 (Hilfe von STM). Im STM Repository gibt es die Beispiele TCP ECHO Server und TCP-Echo Client. Kann mir jemand sagen was die großen "Unterschiede" zwischen Server und Client sind? Ich habe beide Beispielprogramme an der FritzBox ausprobiert. Beide bekommen (DHCP) eine IP zugewiesen. Wie ich gelesen habe, können bei (Server/Client) jeweils Daten senden und Empfangen. Wofür benötige ich einen TCP Server wofür einen Client? Wenn jemand ein paar Gute Links kennt zu dem Thema wäre ich auch Dankbar. Grüße, Reiner
die unterscheiden sich in der Art des Verbindungsaufbaus, der Server ist passiv und wartet darauf das jemand anklopft, der Client ist aktiv und klopft beim Server an. Die Datenverbindung ist dann bidirektional.
J. S. schrieb: > die unterscheiden sich in der Art des Verbindungsaufbaus, der > Server ist > passiv und wartet darauf das jemand anklopft, der Client ist aktiv und > klopft beim Server an. Die Datenverbindung ist dann bidirektional. Ich habe mal ein Schema des Aufbaus angehängt. Ich habe zwei "Eigenbau HW" -Geräte, einen Wechselrichter und einen PC. Zum einen sollen die beiden EigenbauGeräte sich untereinander Unterhalten und eines des Beiden soll an den PC Vorgabewerte senden. Der PC sendet dann dieses Vorgabewert (oder eine Korrektur davon) an den Wechselrichter. Wenn ich das richtig verstehe müssen die EigenbauGeräte Clients sein und der PC ein Server und Client (er soll ja aktiv etwas an den Wechselrichter schicken und ggf. Daten abrufen). Der Wechselrichter könnte ich mir als passives Server vorstellen.
ReinerZufall24 schrieb: > Ich habe mal ein Schema des Aufbaus angehängt. Die Netzwerk Topologie spielt echt keine Rolle bei der Frage wer TCP Server und wer TCP Client ist. Bei MODBUS hast du eben ein Gerät welches sich über Modbus steuern lässt oder Daten bereitstellt. Dieses Gerät ist der Server. Da verbinden sich Clients und lesen und schreiben die Register auf dem Server-Gerät.
wenn die Verbindung steht, dann können Server und Client jeweils Senden und Empfangen. Es hängt dann vom Protokoll ab ob sie es auch so tun wollen. Einen Server nimmt man typischerweise wenn der Dienste anbietet, ein Server kann einen oder mehrere Clients akzeptieren. Einen Server benutzt du ja gerade: den Webserver für µC.net. Dein Browser (Client) verbindet sich auf Anfrage mit dem Server, und dieser Server soll ja viele Clients bedienen. HTTP ist so gebaut das nur auf Anfragen geantwortet wird, der Server sendet nicht ungefragt. Könnte er aber, es liegt hier also nur am Protkoll das er es nicht tut. Bzw. wurde beim HTTP nach einer Antwort die Verbindung wieder abgebaut um ganz viele Clients bedienen zu können. Beim eigenen Server kann die Verbindung auch bestehen bleiben und dann kann der Server losschwätzen wenn er etwas mitteilen möchte. MQTT z.B. verteilt eine Nachricht an alle Clients die verbunden sind und sich für diese Nachrichten angemeldet haben.
Das Ganze hat erstmal nichts mit STM32 zu tun, also solltest Du den erstmal in Deiner Fragestellung ausklammern (auch für Dich selbst). Realisiere doch Dein System einfach mal in Form von drei Programmen auf dem PC und lerne dabei die Netzwerk-Grundlagen - den Unterschied zwischen Client und Server sollte man in ein paar Minuten auf Wikipedia herausfinden. Auch zum Thema MODBUS findet man reichlich im Netz. Wenn dann alles läuft, kannst Du dich daran machen, die Funktionalität auf den STM32 zu portieren.
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.