# Server - Client Informationsaustausch, Möglichkeiten



## Dreieck (23. Jan 2021)

Zu meiner Frage: Ich programmiere meine Verbindungen zwischen 2 Computer immer mit Sockets. Doch, ich würde gerne noch weitere Möglichkeiten kennenlernen, welche den Informationsaustausch ermöglichen würden. Vielleicht könntet ihr mir noch ein paar Varianten zeigen. Danke schonmal im vorraus!


----------



## mihe7 (23. Jan 2021)

Naja, die Kommunikation läuft in Zeiten von TCP/IP bzw. UDP/IP praktisch immer über Sockets. Du kannst aber Protokolle auf höherer Ebene und damit entsprechende Bibliotheken verwenden, die die Kommunikation vereinfachen. Vieles läuft heute z. B. via HTTP, SMTP kommt auch manchmal vor und dann gibt es natürlich auch eine Reihe weiterer Protokolle.


----------



## kneitzel (23. Jan 2021)

Dreieck hat gesagt.:


> Zu meiner Frage: Ich programmiere meine Verbindungen zwischen 2 Computer immer mit Sockets. Doch, ich würde gerne noch weitere Möglichkeiten kennenlernen, welche den Informationsaustausch ermöglichen würden. Vielleicht könntet ihr mir noch ein paar Varianten zeigen. Danke schonmal im vorraus!


Also wie @mihe7 schon erläutert hat: Es läuft in der Regel immer über Sockets. Das ist halt eine einheitliche Schnittstelle und das was drunter läuft, ist Dir dann egal. So muss man sich über vieles keine Gedanken mehr machen. 

Somit baut eigentlich alles immer auf Sockets auf.

Generell spricht aber natürlich nichts dagegen, auch auf die Level unterhalb zu gehen. Du kannst also direkt eine Schnittstelle ansprechen. Eine Serielle Schnittstelle wäre da z.B, zu nennen. Da liest Du dann erst einmal direkt Daten, hast aber immer noch ein relativ hohes Niveau: Du musst nicht wirklich steuern, wann wie etwas auf der Ausgabe anliegt oder nicht. Du setzt in der Regel gewisse Parameter eines Protokolls (Geschwindigkeit, Anzahl Bits, Stopbit ja/nein, ...)

Oder Du hast direkte I/O Ports (bei den kleinen "Bastelsystemen" wie Arduino, RaspberryPi und co)
Dann kannst du auf unterster Ebene Lesen / Schreiben. Du kannst also in der Software definieren, was am Ausgang anliegen soll und du bist für die Veränderung verantwortlich. Das geht prinzipiell alles. Und damit bist Du sozusagen auf der untersten Ebene und die hast Du so oder so immer. Teilweise hast Du aber spezielle Systeme, die die Daten entgegen nehmen und eine erste Auswertung machen, also z.B. eine Netzwerkkarte mit Glasfaser Anschluß: Da werden Lichtsignale umgesetzt für den Computer. Oder bei RJ45 (Kupfer) wird die Spannung und so auch nicht vom Computer sondern von der Netzwerkkarte ausgewertet. (Je nach Karte geht das ganz schön weit. Einige Karten nehmen dem Computer viel Arbeit ab, damit der Rechner entlastet wird und höhere Datenraten möglich werden.)

Da ist daher wirklich die Frage wichtig, was Du überhaupt so im Sinn hast.


----------



## kneitzel (23. Jan 2021)

Evtl. noch ein paar Beispiele, da Du ja in der Überschrift Client/Server Datenaustausch beschrieben hast:

- Netzwerkverbindung nutzen. Da ist heute durch Ethernet und WLAN alles andere verdrängt worden, aber es gab hier natürlich früher eine viel breitere Technologie (Im reinen Backend-Bereich natürlich auch heute noch!). Aber damals gab es hier sehr viele Möglichkeiten, eine Netzwerkverbindung her zu stellen: Serielle und Parallele Kabele waren da durchaus damals anzufinden. Aber das war dann so umgesetzt, dass du das z.B. im Linux System einmal eingerichtet hast und dann hattest Du eine normale Netzwerkverbindung (Das waren dann SLIP und PLIP Kernel Treiber). ==> Die Applikationen hat es nicht interessiert, denn die hat einfach auf das konfigurierte Netzwerk zugegriffen.
Daher ist das übliche wirklich Netzwerk und wenn Du etwas neues haben wolltest, dann würdest Du das über entsprechende Treiber einbinden....

- Evtl. nicht ganz Client/Server, wie es Dir vorschwebt, aber die Serielle Schnittstelle ist immer noch als "Terminal" gebräuchlich. Ist am Sterben, alleine weil viele Notebooks ohne Seriellen Port auskommen. Aber da hat man dann keine Netzwerkverbindung im eigentlichen Sinne, bei denen beliebige Verbindungen möglich sind, sondern da fungiert der Client nur als Terminal - als eine Art Monitor/Tastatur für den Server.
(Das findet man auch bei Systemen mit speziellen Funktionen ... Also managed switches und so habe ich so schon konfiguriert.)


----------

