Kommunikation zwischen Java Programmen?
Hey,
ich bin nun schon Recht erfahren in Java und mir ist eine Frage aufgekommen. Wie kann man in Java Daten von einem Client zu einem Server austauschen? Gibt es da einen oberfachbegriff für dieses Thema? Es geht mir nicht nur darum, dass der Client beispielsweise was in eine Datenbank reinschreibt und der Server daraus liest sonder es geht mir um einen direkten Austausch von Daten zwischen Client und Server.
Wäre nice wenn dazu jemand was schreiben kann.
Danke
4 Antworten
Austausch von Daten zwischen Client und Server.
Hierzu gibt es direkte Klassen wie: Socket und ServerSocket (und DatagramSocket). Wobei man via UDP oder TCP (je nach dem, wie deine Anwendung gestaltet ist) seine Anwendungen miteinander Kommunizieren lassen kann.
Gibt es da einen oberfachbegriff für dieses Thema?
Ja: Netzwerkprogrammierung.
Um in das Thema rein zu kommen, ist das einfachste ein Chat-Server inkl. Client.
Da gibt es zahlreiche Beispiele. Eins wäre folgendes:
http://www.java2s.com/Code/Java/Tiny-Application/Chatclientserver.htm
Ich würde mal sagen, dass das über Sockets läuft.
https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html
http://openbook.rheinwerk-verlag.de/javainsel9/javainsel_21_007.htm
Außerdem finde ich auch folgenden Vortrag ganz interessant (zwar von einer Game engine, aber schöne Übersicht):
Naja, erfahren bist du dann aber noch nicht. Das, was du ansprichst, kann man als Network Programming bezeichnen. Eine Server-Client-Architektur ist dabei ein mögliches Modell zur Datenübertragung, ein anderes wäre Peer-to-Peer.
Server-Client-Architekturen kannst du mit einer Socketverbindung aufbauen oder du nutzt eine abstraktere Schicht (s. auch OSI-Modell: https://de.wikipedia.org/wiki/OSI-Modell), welche auf Socketverbindunggen aufbaut: RMI.
Eine Kommunikation zwischen System und Datenbank ist übrigens ebenso oft eine Server-Client-Architektur, denn die Datenbank läuft in diesem Fall auf einem Server, der sie für den Client erst erreichbar macht.