STM32 TCP server vs. TCP client

Gast #7244179
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
#7244182
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.
Gast #7244221
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.
Angehängte Dateien:
#7244240
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.
#7244247
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.
Gast #7244362
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 3 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.