Client soll mehrere Antworten von Servern gleichzeitig empfangen

N

NCMS

Gast
Hello,

für eine Applikation habe ich ein paar Rechner (Netzwerk). Von einem (fungiert als Client) wird nun ein UDP-Broadcast an alle anderen (alle sozusagen Server) geschickt. Diese sollen dann mit einer Info antworten, die sich der Anfragende merken soll (Liste oder so).

Aber wie mache ich das, dass er gleichzeitig oder evtl. zeitlich versetzt mehrere Antworten auf dem gleichen Port verarbeiten kann?
 

c_sidi90

Top Contributor
Du verschickst die Antworten des Servers halt nach und nach, Timer oder Thread sind gefragt. Du könntest auch alle Informationen mit einem DatagramPackage schicken und es bei Ankunft am Client aufsplitten und speichern.
 
N

NCMS

Gast
Es sollen aber alle mit dem selben Programm arbeiten. Sollen dann die verschiedenen "Antworter" ne Zufallszahl generieren und erst nach Ablauf dieser Zeit ihr Zeug an den "Frager" senden?
 

c_sidi90

Top Contributor
Also ich versteh nicht wirklich wie du denkst. Hat man doch einen Server welcher in einem Thread dauerhaft auf Anfragen von Clients wartet. Sobald eine Nachricht eingeht, antwortet der Client an den Absender des eingehenden Packetes. Die Reihenfolge spielt keine Rolle und kann via UDP sowieso variieren.

PseudoServer

while(running)
warte auf Anfragen

if(eingehendeAnfrage)
erzeugeAntwort
sendeAntwort(eingehendeAnfrage.getAbsender)

)

Das Abarbeiten mehrerer Anfragen an den Server macht der DatagramSocket meines Wissens nach automatisch, darum musst du dich nicht kümmern (kann mich auch irren).
 

nrg

Top Contributor
Nein. Sie senden sie sobald sie es können. Der Empfänger arbeitet diese dann in Threads ab. D.h. es entsteht eine "Parallelität"
 
N

NCMS

Gast
Ich weiß nicht, ob ihr mich richtig versteht:

Teilnehmer: Station A, Station B1, Station B2, Station B3

Station B1...3 warten auf eine Anfrage. Sie horchen auf bestimmten Port und wenn dort eine Anfrage kommt, senden sie eine Antwort. (Server) Sie haben alle die selbe Applikation.

Station A schickt nun an 255.255.255.255 eine Anfrage auf den bestimmten Port. (Client)

Die StationenB1...3 antworten nun alle sofort darauf. Zum Beispiel indem sie ihre eigene Uhrzeit auslesen und an A schicken oder MAC-Adresse usw.

A muss nun die Infos von 1...3 empfangen und am besten gleich in der Konsole ausgeben oder sonst wo hin speichern. Aber ich denke, dass die Antworten (z. B. Uhrzeit) alle gleich ankommen. Und ich kann immer nur eine Antwort empfangen. Möchte aber ALLE empfangen.
 

c_sidi90

Top Contributor
Also implementiert jeder Client gleichzeitig auch eine Server funktion ? So ein Vorhaben habe ich damals auch mal umgesetzt.

Ich hatte das so gelöst, dass zum Start jedes Clients versucht wird, einen Socket auf dem festgelegten Port zu eröffnen. Wenn dies aufgrund einer "PortAlreadyInUseException" nicht gelingt, wird anstatt des Portgebundenen DatagramSocket(port) ein normaler DatagramSocket() erstellt.

In der run() Methode wird gehorcht ob was eingeht (socket.receive(in), bei einem Broadcast bekommt also jeder Client eine Nachricht und antwortet mit einer Information. Der Absender des Broadcasts bekommt also von jedem Client eine Nachricht zurück und kann diese beim Eintreffen des Packetes speichern oder halt in der Konsole ausgeben.
 

c_sidi90

Top Contributor
Ungetestet


Jedes Programmiert implementiert:

Java:
public void run (){
	
		running = true;
		DatagramSocket socket = null;
		
		try {
			socket = new DatagramSocket(5001);
		}
		
		catch (SocketException e) {
			
			System.out.println(e.getMessage());
			
			try {
				socket = new DatagramSocket();
			}
			
			catch (SocketException e1) {
				
				System.out.println(e1.getMessage());
			}
		}


Java:
 while(running){
			 
			byte[] inData = new byte[1024];
			String message;
			DatagramPacket in = new DatagramPacket(inData, inData.length);
			
			try {
				
				//Verusche Nachricht zu empfangen
				socket.receive(in);
				
				String senderName = in.getAddress().getHostName();
				message = new String(in.getData(),0,in.getLength());
				System.out.println("received from: " + senderName + " Message: " + message);
	
			} catch (IOException e) {
				System.out.println(e.getMessage());
				running = false;
				socket.close();
			}
			
			socket.close();
		}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
X client soll bat auf server ansprechen Java Basics - Anfänger-Themen 7
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
E SocketServer/Client stürzt ab. Address already in use. Java Basics - Anfänger-Themen 2
I Wann ist Client plattformunabhängig? Java Basics - Anfänger-Themen 22
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I Unique client information in WebApp Java Basics - Anfänger-Themen 3
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
K Java Client > Python Server Java Basics - Anfänger-Themen 0
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
T Buffererwriter keine Exception obwohl Client weg Java Basics - Anfänger-Themen 2
E Client Server Java Basics - Anfänger-Themen 12
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
O Server Client Problem Java Basics - Anfänger-Themen 2
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
E Client hilfe!!! Java Basics - Anfänger-Themen 7
B RMI - Fehlermeldung auf dem Client Java Basics - Anfänger-Themen 6
X Applet - Client/Server Java Basics - Anfänger-Themen 2
E Client ergibt NULL? Java Basics - Anfänger-Themen 24
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
E HTTP Client - Login durchführen? Java Basics - Anfänger-Themen 4
L Ip-Adresse für Client Java Basics - Anfänger-Themen 14
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
L Wegwerf Client Java Basics - Anfänger-Themen 26
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
L Client aktualisieren Java Basics - Anfänger-Themen 6
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
J DNS-Client Java Basics - Anfänger-Themen 2
J Simpler DNS Client Java Basics - Anfänger-Themen 20
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
B Server-Client mit Thread ausstatten Java Basics - Anfänger-Themen 3
D Client-Server Problem Java Basics - Anfänger-Themen 2
J Netzwerkrprogammierung Client - Server Java Basics - Anfänger-Themen 3
J Netzwerkprogrammierung Client/Server Java Basics - Anfänger-Themen 16
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
M Flexiblen Client programmieren Java Basics - Anfänger-Themen 2
G JMS -> Wie Anmeldung vom Client an Server? Java Basics - Anfänger-Themen 4
S Webservice: Dateien downloaden vom Webserver auf den Client Java Basics - Anfänger-Themen 7
G Ausg. in JSP erzeugen die als Antwort an Client gesch. wird Java Basics - Anfänger-Themen 2
I Server / Client Programm wie einen String übergeben? Java Basics - Anfänger-Themen 6
K Client-Liste im Chat Java Basics - Anfänger-Themen 2
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
G Java Server Client Programmierung Java Basics - Anfänger-Themen 3
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
A Problem mit Ausgabe einer Liste über einen Client Java Basics - Anfänger-Themen 5
rambozola zugriff auf client bei j2ee anwendung Java Basics - Anfänger-Themen 10
G Mail Client öffnen Java Basics - Anfänger-Themen 9
D Server/Client Java Basics - Anfänger-Themen 8
T Datei über UDP verschicken . Speicherprobleme am Client Java Basics - Anfänger-Themen 4
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
R client-applikation? Java Basics - Anfänger-Themen 5
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
G Dateidownload Client-Server (jsp) Java Basics - Anfänger-Themen 4
G Zugriff vom 'Server auf Client' Java Basics - Anfänger-Themen 4
S smtp-Client programmieren Java Basics - Anfänger-Themen 9
S Client-Server Java Basics - Anfänger-Themen 18
C client/server programm fehler ! Java Basics - Anfänger-Themen 20
F Wie kommen die Applets zum Client? Java Basics - Anfänger-Themen 7
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
T Client-Authentifizierung Java Basics - Anfänger-Themen 6
K [servcer/Client] Suche Server /Client Tutorial. Java Basics - Anfänger-Themen 2
G http client Java Basics - Anfänger-Themen 4
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
Com.Roter Wie soll ich lernen? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben