Server als Client nutzen

pinkysbrain

Mitglied
Hallo,

ich soll eine Applikation schreiben, die auf mehreren Rechnern läuft.
Dabei sollen alle Rechner gleichzeitig als Server bzw Client funktionieren können.
Die Rechner verbinden sich, wählen einen Master und schicken dann alle Anfragen an diesen.
Die Kommunikation soll über xml rpc funktionieren.

Ist es grundsätzlich möglich einen Server zu starten, der wiederum als Client gegenüber anderen Servern auftritt?
Oder muss ich auf jedem Rechner einen Client und einen Server starten um das ganze zu realisieren? Falls ja, wie läuft dann die lokale Kommunikation zwischen Client und Server ab?

Das Minimalbeispiel wären zwei Rechner die jeweils die Adresse des anderen kennen. Beide Rechner sollen sich über einen XML RPC Aufruf verbinden können. Danach wird einer der beiden als Master ausgewählt und erhält alle nachfolgenden Anfragen beider Rechner.
Wie kann so etwas grundsätzlich mit Java und XML RPC realisiert werden?

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Vielen Dank für die Hilfe.
 

InfectedBytes

Top Contributor
Wenn du UDP nutzt, dann gibt es quasi keine server. Jeder kann beliebig Nachrichten empfangen und verschicken, also peer to peer mäßig. In deiner Anwendung kannst du dann damit einen Server wählen lassen und anschließend nur noch nachrichten an diesen schicken.

Mit TCP geht es natürlich auch, allerdings muss dann jeder eine Listener erzeugen und mehrere Clients, welche sich mit den anderen verbinden, etc.

Für so eine peer-to-peer mäßige Anwendung würde ich UDP bevorzugen, allerdings musst du beachten, dass UDP nicht garantiert das die verschiedenen Nachrichten auch in der gesendeten Reihenfolge ankommen, oder ob sie überhaupt ankommen.
 

Dukel

Top Contributor
Wenn du UDP nutzt, dann gibt es quasi keine server. Jeder kann beliebig Nachrichten empfangen und verschicken, also peer to peer mäßig. In deiner Anwendung kannst du dann damit einen Server wählen lassen und anschließend nur noch nachrichten an diesen schicken.

Natürlich gibt es auch mit UDP einen Server. Ohne Server kann man zwar Pakete verschicken, aber die werden dann von niemand angenommen.
 

InfectedBytes

Top Contributor
nein, udp ist ein verbindungsloses protokoll. Man sendet und empfängt direkt die Pakete.
Und da jeder sender/empfänger gleich ist, gibt es auch keine client-server architektur, denn jeder kann nach belieben an jeden senden und von jedem empfangen.

Auf Anwendungsschicht kann man wenn man möchte natürlich eine client-server architektur einbauen, aber auf Protokollebene gibt es keine Server als solches.
 

Dukel

Top Contributor
Verbindungslos hat nichts mit Client / Server zu tun. Sonst gäbe es keinen DNS Server, welcher auf UDP/53 lauscht.
Versuche dir selbst einmal Pakete per UDP an einen beliebigen Port zu schicken, auf dem kein Server lauscht.
Verbindungslos heisst nur, dass es keine Flusskontrolle gibt und ggf. Pakete unterwegs verloren gehen.
 

Dukel

Top Contributor
Nein! Das ist Blödsinn.
Ein Server ist ein Programm, welches auf einem festgelegten Port lauscht und Pakete (egal ob TCP oder UDP!) annimmt und verarbeitet.
Ein Client ist ein Programm, welches auf einem fast beliebigen Port Pakete (egal ob TCP oder UDP!) an ein Server schickt.
 

InfectedBytes

Top Contributor
nein, das abwarten auf Pakete hat nichts mit Server zu tun. Auch ein client ist in der Lage Pakete zu empfangen.
Wie z.B. bei TCP, dort muss allerdings der Client eine Verbindung zum Server aufbauen und kann erst danach nach belieben Daten senden und empfangen.

Ich glaube wir reden ein wenig aneinander vorbei.
Ein Client ist ein Programm, welches auf einem fast beliebigen Port Pakete (egal ob TCP oder UDP!) an ein Server schickt.
Das würde ich eben nicht so sehen, denn ein Client schickt nicht nur Daten, sondern empfängt sie ggf. auch. Natürlich kannst du auch sagen das der Client eben auch einen Server beinhaltet, welcher für den Empfang zuständig ist. Aber dann muss man im Falle von TCP halt auch sagen, dass die Server-Seite eben einen Server beinhaltet, welcher die Verbindung annimmt und dann für jede neue Verbindung einen weiteren Server öffnet, welcher die Daten vom jeweiligen Client annimmt.

Die Sache mit dem Senden/Empfangen würde ich halt eher als eine Eigenschaft des Sockets betrachten, ob er eben Daten sendet oder auch empfängt.
Bei TCP betrachte ich daher dann nur den Socket als Server, welcher sich um die Verbindungsanfragen kümmert. Danach wird durch accept jeweils ein neuer Socket erstellt, welcher für das senden/empfangen von Daten zuständig ist. Dieser socket ist dann gleichwertig mit dem socket auf der seite des Client. Beide können sich gegenseitig Daten senden und eben jene auch vom anderen empfangen.

Bei UDP ist man direkt an dem Punkt, an dem ein Socket nach belieben senden und empfangen kann.
Dementsprechend würde ich hier nur vom Server reden, wenn die Anwendungslogik eben sowas wie einen "Dienst" bereitstellt, welcher vom Client genutzt werden kann.
 

Dukel

Top Contributor
Ok War etwas undeutlich beschrieben.
Mir geht es um den Verbindungsaufbau. Wenn einmal eine Verbindung besteht kann natürlich der Server auch antworten.
Aber das ist bei UDP und TCP gleich!

Du brauchst aber sowohl bei TCP als auch bei UDP einen Server. Verschicke doch mal ein UDP Paket an einen Rechner auf dem kein Service läuft. Wer soll das Paket dann annehmen und verarbeiten?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Chat entwickeln mit Java Server Client Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
J client server mit nur einem PC Netzwerkprogrammierung 33
M Socket Nachricht von TCP-Client an Server schicken Netzwerkprogrammierung 12
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
G Server-Client IO Problem Netzwerkprogrammierung 6
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
I Client/Server Kommunikation bei einem Spiel Netzwerkprogrammierung 4
E Objekte versenden, Client-Server Netzwerkprogrammierung 25
C Mini Client-Server-Anwendung funktioniert nicht Netzwerkprogrammierung 8
D Socket Run Args Client/Server Socket Netzwerkprogrammierung 1
Cromewell Socket Multithreaded Server und Client Netzwerkprogrammierung 1
Y Client/Server/DB communication Netzwerkprogrammierung 3
JavaWolf165 Socket mit .writeUtf etwas vom Client zum Server schicken Netzwerkprogrammierung 13
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
brainless Client Server Kommunikation verschlüsseln Netzwerkprogrammierung 13
gamebreiti Socket Server / Client Anwendung Manipulation von Objekten durch Server Netzwerkprogrammierung 9
T Socket Server/Client Kommunikation Netzwerkprogrammierung 8
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
K C# Server - Android Client Netzwerkprogrammierung 0
P MIME-TYPE Erklaerung, Kommunikation zwischen Client und Server Netzwerkprogrammierung 3
J Sichere Kommunikation bei Server Client Netzwerkprogrammierung 3
T Frage zu Client-Server Applikation Netzwerkprogrammierung 2
H Socket Client/Server Socket Programmieren Netzwerkprogrammierung 1
M Theoretische Frage zu Server - Client Netzwerkprogrammierung 2
P HTTP Server / Client Netzwerkprogrammierung 1
E Thematik Client server Netzwerkprogrammierung 2
D Client/Server per Crossover Lan Kabel Netzwerkprogrammierung 1
S Client Server Connection Netzwerkprogrammierung 4
V erste Client - Server Anwendung, paar Fragen wie Socketverbindung checken usw. Netzwerkprogrammierung 4
S Sichere Server/Client Architektur Netzwerkprogrammierung 1
D Chat Server/mehre Client Netzwerkprogrammierung 9
I Server+Client Netzwerkprogrammierung 3
N Client am Server abmelden Netzwerkprogrammierung 0
F Server/Client Probleme Netzwerkprogrammierung 3
U Socket Instant Messanger (Server Linux, Client Windows) Netzwerkprogrammierung 1
Athena Grundsatzfragen zu Client-Server-Architektur / Matchmaking Netzwerkprogrammierung 1
A Problem beim Senden von Client zu Server Netzwerkprogrammierung 10
F Client Server DB Netzwerkprogrammierung 0
A Verständnisfrage Multi-Threaded Client/Server Netzwerkprogrammierung 5
F Tipps zum Thema Server/Client vie SOAP Netzwerkprogrammierung 0
F Socket Java - Server/Client simple Netzwerkprogrammierung 1
R Zeitliche Syncronisation Server - Client Netzwerkprogrammierung 0
S Server-Client: Image senden Netzwerkprogrammierung 2
C Multithreading Client / Server erklärt Netzwerkprogrammierung 11
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
J Client Server - Serialisierung Netzwerkprogrammierung 8
Luk10 Server / Client: Clients speichern! Netzwerkprogrammierung 6
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
K Client => Server Netzwerkprogrammierung 2
A ? Home-Network, Server/Client-Einrichtung Netzwerkprogrammierung 4
S Socket Server: ConnectionError vom Client erkennen Netzwerkprogrammierung 31
A Java Server - IOS Client Applikation Netzwerkprogrammierung 20
L Ratschlag zur Umsetzung einer client-server-Kommunikation Netzwerkprogrammierung 6
M RMI RMI Probleme zwischen Client und Server Netzwerkprogrammierung 5
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
N Client-Server-Datenbank Netzwerkprogrammierung 13
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
B Client/Server Connection Problem Netzwerkprogrammierung 2
S Server Client Daten hin und herschicken Netzwerkprogrammierung 2
R Server zu Client Kommunikation Netzwerkprogrammierung 11
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
T Server und Client verbinden nicht Netzwerkprogrammierung 6
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V Socket UDP Server/Client Kommunikation sehr langsam Netzwerkprogrammierung 2
das-mo Client/Server sendet nicht Netzwerkprogrammierung 7
Z Socket Server/Client vernünftiger Verbindungsabbruch Netzwerkprogrammierung 4
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
F TCP Server/Client Netzwerkprogrammierung 14
M Problem Client - Server Sockets: .ready() wird nie true! Netzwerkprogrammierung 6
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
N eine klasse mit server & client Netzwerkprogrammierung 5
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
S Socket Einfache Client/Server-Anwendung Netzwerkprogrammierung 11
F Socket Server/Client Kommunikation Netzwerkprogrammierung 4
X Problem mit Server-Client-Kommunikation Netzwerkprogrammierung 14
D Projektstruktur / Architektur (Client-Server) Netzwerkprogrammierung 9
P Socket IRC Client nicht kompatibel mit Server Netzwerkprogrammierung 30
F FTP Client mit Sockets - wann sagt der Server nichts mehr? Netzwerkprogrammierung 7
B RMI Server - Client - Aufteilung/Prinzip Netzwerkprogrammierung 11
N Server Client TCP IP Netzwerkprogrammierung 3
M Übersicht client/server implementationen und Frameworks (mithilfe gesucht!) Netzwerkprogrammierung 6
J ObjectStream Client/Server Netzwerkprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben