Forum: Mikrocontroller und Digitale Elektronik STM32 TCP server vs. TCP client


von ReinerZufall24 (Gast)


Lesenswert?

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

von J. S. (jojos)


Lesenswert?

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.

von ReinerZufall24 (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Cyblord -. (cyblord)


Lesenswert?

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.

von J. S. (jojos)


Lesenswert?

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.

von mm (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.