trotz dyn-IP server finden

Andi_CH

Top Contributor
Ich soll einen Server finden, der allerdings eine dynamische IP hat, aber auf dem eine Software von mir laufen kann. (Also habe ich wohl alle Möglichkeiten)
Die Server bieten CAM-Bilder (http) an, welche auf ein bestimmtes Triggerevent "gleichzeitig" vom Client-PC gespeichert werden sollen.

Es ist wieder einmal eine Frage nach den "best practices", also habe ich noch keinen Code.
Es gibt möglicherweise mehrere Server - ich muss alle finden, nicht nur einen.

Ich habe bis jetzt nur eine Idee die in Anlehnung an DHCP entstanden ist:
- Broadcast - die Server geben Antwort - ich muss aber zuverlässig alle Server finden. Server die starten senden auch einen Broadcast, damit schon laufende Clients davon erfahren


Gibt es andere Ideen? (Vorteile / Nachteile)
 
T

Tomate_Salat

Gast
Mir ist die Topologie nicht ganz klar. Aber: hast du irgendwo einen Server mit Statischer IP zur verfügung? An den könnten die anderen Server ihre Daten senden und du könntest von deiner Workstation aus die Daten dort abholen. Wenn die Server sich gegenseitig kennen sollen, könnte der zentrale Server diese miteinander bekannt machen.

Eine ähnlich idee wäre: nimm oder bau dir sowas wie dyndns nach. Irgendwo zentral updated jeder Server seine aktuelle IP und diese tabelle kannst du dann abfragen.
 

Andi_CH

Top Contributor
Ich schreib doch dass ich dynamische IPs habe :bahnhof: was ist daran unklar ???:L

EDIT: Ach ja noch was - verrate mir wie ich den dynDNS Server finden soll? Auch der hätte eine dynamische IP.
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
hast du irgendwo einen Server mit Statischer IP zur verfügung?

Mir geht es hier um einen Extra-Server. Der steht dann z.B. bei euch inhouse und nicht draußen beim Kunden oder wo auch immer.

Ach ja noch was - verrate mir wie ich den dynDNS Server finden soll? Auch der hätte eine dynamische IP.
habe schon ewig nichts mehr mit dyndns gemacht. Aber die bieten(damals zumindest noch, wie es heute ausschaut :bahnhof:) ein Programm, welches deine IP mit einer domain synchronisiert. Also: deine IP wird dynamisch neu zugewiesen, das Programm bekommt das mit und informiert einen anderen Server (hierfür würde schon ein Webserver ausreichen).
 

Andi_CH

Top Contributor
Bring jetzt bitte kein Chaos hier rein - NEIN ich habe KEINE fixe IP zur Verfügung.

Vergiss dein Denken an dynIP - das verwirrt nur - Ich suche ein Lösung für mein Problem und keine weiteren Probleme

Ich will die IP-Nummern der Server finden - ähnlich DHCP - da schreit man aufs Netz und der Server antwortet mit seiner IP (danach gehts dann weiter)

Wenn jemand einen Vorschlag hat der noch einfacher ist ok, aber ich glaube kaum dass es einfacher geht.

Ein weiteres Problem ist ja auch, dass ich eine unbekannte Anzahl Server im Netz habe und alle finden muss - wie soll mir DHCP oder was auch immer dabei helfen?

(Das Thema Broadcastgrenzen habe ich absichtlich noch nicht angschnitten, aber mir ist das schon klar)
 
Zuletzt bearbeitet:
T

TheRealSpikee

Gast
Also das einfachste ist wirklich DynDNS *es gibt ja verschiedene anbieter*.

Was passiert bei DynDNS ?

Du hast eine FESTE Domain !
Dieser FESTEN Domain wird durch ein Tool auf dem Client-Rechner *die meisten modernen Router können sowas auch *zumindest mit DynDNS.org** in regelmäßigen Abständen die aktuelle IP zugewiesen.
Was nun passiert ist das der Client den DNS von DynDNS nach einer Domain fragt ... dieser sieht in seiner DB nach und löst die Domain in die aktuelle IP auf ... FERTIG.

Was du also nun zu verwenden hast ist NICHT die IP ... sondern die DOMAIN ! ... Der Rest wird durch DNS transparent im HG gemacht.

Was Broadcasting angeht : du weist schon das du nur innerhalb des selben SubNet Broadcasten kannst oder ? Wenn dein "Server" also nun eine dyn IP hat müsstest du zumindest für sorgen das diese immer im selben SubNet mit deiner eigenen ist ... was ich sehr stark bezweifel. Auch ist es in den meisten öffentlichen Netzen nicht möglich zu Broadcasten da solche Pakete von den Verbindungs-Servern der Anbieter geschluckt werden.
 

Andi_CH

Top Contributor
Warum meint ihr mein Problem ändern zu müssen bzw. können. Jedes mal wenn eine etwas komplexere Anfrage kommt laufen die Threads ins Wirre, obwohl ja das die interessanten Themen der Informatik wären und nicht die ewigen "wie zeichne ich ein Pacalsches Dreieck" u.Ä.

Also Neustart:
dynDNS nütz bei meinem Problem rein gar nichts! Wer es nicht versteht muss es einfach glauben. (Wie soll mir DNS dabei helfen Dienste im Netz zu finden? Nebenbei: ich habe 10.x.x.x IP's!)

Ich will etwas implementieren, das eine Ähnlichkeit mit DHCP hat (wer das mittels dynDNS lösen kann, empfehle ich für den Nobelpreis der Informatik)

Ich will die IP Nummern aller Server die einen bestimmten Dienst anbieten herausfinden.
- Idee Broadcast
- Frage: Wie mache ich einen Broadcast?
- Frage: Wie fange ich alle Antworten ab?





----------
Noch einige Details, die aber nicht diskutiert werden müssen und die ich nicht diskutieren werde

Netzwerke an und für sich habe ich definitiv begriffen - auch wie weit Pakete laufen - glaubt es einfach.

Wenn man lange genug wartet, kann der DNS sogar die Rechneramen auflösen die dynamische IPs haben, aber das nützt mir NICHTS weil ich die Namen nicht kenne. Es gibt, wie oben erwähnt, keinen Verzeichnisdienst der das kann - es gibt auf der ganzen Welt keinen der das kann und wenn ich so einen erfinden würde ... wer sagt meinem Progrämmchen zur Laufzeit auf welchem Rechner dieser Dienst laufen würde? Auch der hat bei jeder Installation einen anderen Namen ...
 
T

Tomate_Salat

Gast
Warum meint ihr mein Problem ändern zu müssen bzw. können.
Gibt es andere Ideen? (Vorteile / Nachteile)

Dann stelle diese Frage einfach nicht. Wenn du unbedingt das ganze via Broadcast lösen möchtest, dann hätteste einfach danach gefragt.

Nebenbei: ich habe 10.x.x.x IP's!
Wäre vllt schon früher interessant gewesen.

Ich will die IP Nummern aller Server die einen bestimmten Dienst anbieten herausfinden.
- Idee Broadcast
- Frage: Wie mache ich einen Broadcast?
- Frage: Wie fange ich alle Antworten ab?

Das könnte dich vllt interessieren: Broadcasting to Multiple Recipients (The Java™ Tutorials > Custom Networking > All About Datagrams)

Ansonsten: In der Theorie würde ichs so machen, wie du schon beschrieben hast:
-> Server startet
-> Server startet einen Thread, um auf UDP-Anfragen reagieren zu können.
-> Server schickt ein Signal in den vorgegebenen Adressraum (UDP)
---> Server wartet eine vorgegebene Zeit auf eine Antwort
---> Kommt eine Antwort: Server merkt sich die IP
 
Zuletzt bearbeitet von einem Moderator:

Andi_CH

Top Contributor
Danke für den Hinweis auf die Broadcasterei - das habe ich bis jetzt wirklich noch nicht gefunden.

Dann stelle diese Frage einfach nicht. Wenn du unbedingt das ganze via Broadcast lösen möchtest, dann hätteste einfach danach gefragt.

Gibt es denn einen gangbaren Weg um in einem Netzwerk alle Server zu finden die einen bestimmten Dienst anbieten? Bis jetz nicht ;-)

Ich persönlich kenne übrigens keine einzige Firma in der noch offizielle IPs verwendet werden - die machen alle NAT.

Der Thread hier erinnert mich irgendwie daran ;-)
 
T

Tomate_Salat

Gast
Der Thread hier erinnert mich irgendwie daran ;-)

Ich liebe diesen Cartoon :)

Da ich noch nie mit UDP gearbeitet habe, hats mich gereitzt mal sowas im kleinen (lokal :lol:) zu testen. Dazu habe ich noch diese Seite genutzt: A Simple Java UDP Server and UDP Client | systemBash ist etwas kompakter als die andere.

Hier mal mein kleiner Test:
Java:
package de.broadcast;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketTimeoutException;

public class BroadCastingSystem extends Thread
{
	public final int PORT;
	
	public static void main(final String[] args) throws Exception {
		new BroadCastingSystem(50505,true);
		BroadCastingSystem b2=new BroadCastingSystem(50505,false);
		
		b2.sendSignal();
		
		// Zur sicherheit bzgl. der Daemon-Threads
		Thread.sleep(3000);
	}
	
	public BroadCastingSystem(final int PORT, final boolean startServer)
	{
		this.PORT=PORT;
		setDaemon(true);
		if(startServer)
			start();
	}
	
	public void sendSignal()
	{
		String server="255.255.255.255";
		try {
			DatagramSocket client=new DatagramSocket();
			byte[] message="bcs".getBytes();
			DatagramPacket packet=new DatagramPacket(message, message.length, InetAddress.getByName(server), PORT);
			client.send(packet);
			
			byte[] answer=new byte[2048];
			DatagramPacket awPacket=new DatagramPacket(answer, answer.length);
			client.setSoTimeout(2000);
			client.receive(awPacket);
			
			System.out.println("Antwort: " + new String(awPacket.getData()));
			System.out.println("Von    : " + awPacket.getAddress().getHostAddress());
		} catch (SocketTimeoutException e) {
			System.err.println(server + " antwortet nicht auf das BroadcastSignal"); // <-- hatte mal Sinn ergeben, als in server noch meine IP-Adresse
		} catch (Exception e) {
			System.err.println("Fehler beim Senden des Signals");
		}
	}
	
	@Override
	public void run()
	{
		try {
			byte[] receiveData=new byte[2048];
			DatagramSocket udpServer=new DatagramSocket(PORT);
			DatagramPacket udpPacket=new DatagramPacket(receiveData, receiveData.length);
			
			while(true) {
				udpServer.receive(udpPacket);
				String message=new String(udpPacket.getData());
				InetAddress adress=udpPacket.getAddress();
				int port=udpPacket.getPort();
				
				System.out.println("Gefunden");
				System.out.println("----------------------------");
				System.out.println("IP     : " + adress.getHostAddress());
				System.out.println("Port   : " + port);
				System.out.println("Message: " + message);
				System.out.println("----------------------------");
				System.out.println();
				
				byte[] send=message.toUpperCase().getBytes();
				DatagramPacket srvPacket=new DatagramPacket(send, send.length, adress, port);
				udpServer.send(srvPacket);
			}
			
		} catch(Exception e) {
			System.err.println("Konnte UDP-Signal nicht empfangen");
		}
	}
}

Das ist ganz nett. Ich sende den Broadcast an die Broadcast-Adresse 255.255.255.255 und bekomme als Antwort meinen Rechner :).

Code:
Gefunden
----------------------------
IP     : *.*.*.*
Port   : 51596
Message: bcs
----------------------------

Antwort: BCS
Von    : *.*.*.*
 
Zuletzt bearbeitet von einem Moderator:

Andi_CH

Top Contributor
uuhhhh böses Program - die Windooffirewall liebt das gar nicht, aber die kann man ja "überreden" :)

Auf XP tut es gar nicht - "255:255:255:255 antwortet nicht auf das Broadcastsignal"
 
T

Tomate_Salat

Gast
Du hast auch an allem was auszusetzen :D

Bin hier unter Win7 aber ich denke nicht, dass es damit etwas zu tun hat. Vllt hast du einfach eine andere Broadcastadresse in deinem Netz
 

Andi_CH

Top Contributor
Auf der Win7 Kiste die gleich daneben steht tut es - ich wollte eigentlich nur feststellen ob der Broadcast bis zum anderen PC geht oder nicht ;-)

Die XP-Kiste sieht nicht mal sich selbst, aber ist ja egal.

Du meinst eine andere Broadcastadresse? Soll ich mal 127.0.0.1 ausprobieren? :D
 
Zuletzt bearbeitet:

thE_29

Top Contributor
Du bist dir sicher, dass die Server eine Portweiterleitung eingerichtet haben, bzw. die direkt im Netz hängen?

Sonst bringt dir der Broadcast übers Inet nicht wirklich was..
 

Andi_CH

Top Contributor
Ja ich weiss - Auftrag: Keine Konfiguration - einfach einstöpseln und es muss alles automatisch laufen ;-)

(Wobei die 1-3 Webcams wohl meistens am selben PC eingestöpselt sein werden und der "Klick" der auslöst, dass die Bilder gespeichert werden geographisch ganz aus der Nähe kommt - die Chancen stehen gar nich soooo schlecht. Was aber definitiv ist: Netz = Intranet!

Ich wurde noch auf Multicast aufmerksam gemacht - da haben wir je nach Switch bessere Chancen, aber damit habe ich null Erfahrung.
 

HoaX

Top Contributor
Achja, es kann sein das Broadcast unter Windows mit Java nicht klappt..

Zumindest kann ich mich an was erinnern und dieser Bug: Bug ID: 4212324 Packets sent to broadcast address not received on servers bound to specific addr sagt auch aus, dass die Antworten nicht klappen..

Man solle einfach alle Ip-Adressen in einer Schleife durchgehen oder Linux benutzen..

Der Bug tritt ja nur aus wenn man den Serversocket an eine feste IP bindet. Das sollte in diesem Anwendungsfall ja nicht erforderlich sein.
 
G

Gast2

Gast
Sonst bringt dir der Broadcast übers Inet nicht wirklich was..
Broadcast wird vom Internet gefiltert - bzw. - gar nicht erst weiter geleitet (weil es entsprechend konfiguriert werden muss)

Ich wurde noch auf Multicast aufmerksam gemacht - da haben wir je nach Switch bessere Chancen, aber damit habe ich null Erfahrung.
das ist abhängig vom Switch und ich hatte bis dato nur schlechte Erfahrung

Achja, es kann sein das Broadcast unter Windows mit Java nicht klappt..
[...]
Man solle einfach alle Ip-Adressen in einer Schleife durchgehen oder Linux benutzen..
das ist murks und hat werder was mit Windows, Linux noch Mac am Hut ... das Problem ist das Du meist mehrere IPs im Rechner hast (bei mir eth1 vmnet1, vmnet8, tap0 und manchmal noch tap1) ... als Absender im Broadcast wird vom Betriebssystem aber nur eine IP eingetragen ... die Wahrscheinlichkeit das die richtige IP (bzw. richtiges Netz) eingetragen ist, sinkt also mit steigender Anzahl der IPs ... es bringt nichts wenn man für den UDP-Server an der Stelle 0.0.0.0 angibt - da muss schon das richtige Netz angegeben werden ... das zu Grunde liegende Problem wurde aber diese Woche schon diskutiert
 

HoaX

Top Contributor
das ist murks und hat werder was mit Windows, Linux noch Mac am Hut ... das Problem ist das Du meist mehrere IPs im Rechner hast (bei mir eth1 vmnet1, vmnet8, tap0 und manchmal noch tap1) ... als Absender im Broadcast wird vom Betriebssystem aber nur eine IP eingetragen ... die Wahrscheinlichkeit das die richtige IP (bzw. richtiges Netz) eingetragen ist, sinkt also mit steigender Anzahl der IPs ... es bringt nichts wenn man für den UDP-Server an der Stelle 0.0.0.0 angibt - da muss schon das richtige Netz angegeben werden ... das zu Grunde liegende Problem wurde aber diese Woche schon diskutiert

Nein. Da je Interface ein Paket vom OS versendet wird ist diesem auch das Interface und die richtige IP bekannt. Und die wird da auch eingesetzt, egal welches OS.
Zu dem Thema kann ich auf die Schnelle in deinem Link absolut nichts finden. Welchen Beitrag meinst du genau? Imo gehts da mehr um Kollisionen...

Das Problem beim verlinkten Bug ist dass die Antwort des Clients ebenfalls über den Broadcast kommt und mit Java nicht abgefragt werden kann über welches Interface das Paket kam.
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Auf zwei meiner Maschinen sind Linuxe (eine Debian, eine Kubuntu) dann eine mit Win XP und eine mit Win7 ... ich habe nicht alles auf allen Versucht.

Alle IPs durchgehen? Sozusagen einen Portscanner implementieren? (Ich weiss ja in welchem Portrange Bilder angeboten werden) Lieber nicht, wenn es anders geht - aber DHCP läuft hier doch auch durch alle Switsches hindurch, wobei im Moment alle meine Kisten an ein und demselben Switsch hängen

--
Warum soll man eigentlich Switch schreiben wenn man Switsch spricht :D - ja das erste war noch ein Vertipper - das zweite pure Absicht ;)
 

thE_29

Top Contributor
Du machst den Fehler von einem LAN oder WAN auf das Internet zu schließen..

Klar ist das Internet auch nur ein riesen WAN, aber da wird viel gefiltert/geblockt und somit ist das ganze schwer zu vergleichen..


Bau dir halt ne Klasse was nen IP-Range durchgeht (10.0.0.X bis 10.254.X.X) und via UDP an einen fixen Port (weil auf den Maschinen läuft ja was von dir) ne Anfrage hinschickt..

Ist der Server richtig konfiguriert (Port) + hat Weiterleitung oder hängt direkt im Netz, so solltest du ne Antwort kriegen..

Läuft zufällig was auf dem gleichen Port, so wirst du eine Antwort kriegen die dir nicht passt (musst halt ne Routine einbauen) oder gar keine bekommen..

Läuft gar nix auf dem Port oder wird der Port nicht weitergereicht oder ist der Server falsch konfiguriert, tjo, dann hastn Pech ;)
 

Andi_CH

Top Contributor
LAN, WAN oder Wahn das ist hier die Frage :) Ich habe nicht verstanden was ich verwechseln soll.
Aber das ein HUB Dinge durchlässt die schon beim Switch, spätestens aber bei Router stecken bleiben ist bekannt und ein heutiges LAN besteht beinahe nur noch aus Switches.

Was ich nicht verstehe, weil ich es noch nie angeschaut habe, ist Mulitcast.

Wie soll denn das mit dem Routing dieser eigentlich virtuellen IP Nummern gehen?
 
Zuletzt bearbeitet:
T

TheRealSpikee

Gast
Warum meint ihr mein Problem ändern zu müssen bzw. können. Jedes mal wenn eine etwas komplexere Anfrage kommt laufen die Threads ins Wirre, obwohl ja das die interessanten Themen der Informatik wären und nicht die ewigen "wie zeichne ich ein Pacalsches Dreieck" u.Ä.

Also Neustart:
dynDNS nütz bei meinem Problem rein gar nichts! Wer es nicht versteht muss es einfach glauben. (Wie soll mir DNS dabei helfen Dienste im Netz zu finden? Nebenbei: ich habe 10.x.x.x IP's!)

Ich will etwas implementieren, das eine Ähnlichkeit mit DHCP hat (wer das mittels dynDNS lösen kann, empfehle ich für den Nobelpreis der Informatik)

Ich will die IP Nummern aller Server die einen bestimmten Dienst anbieten herausfinden.
- Idee Broadcast
- Frage: Wie mache ich einen Broadcast?
- Frage: Wie fange ich alle Antworten ab?





----------
Noch einige Details, die aber nicht diskutiert werden müssen und die ich nicht diskutieren werde

Netzwerke an und für sich habe ich definitiv begriffen - auch wie weit Pakete laufen - glaubt es einfach.

Wenn man lange genug wartet, kann der DNS sogar die Rechneramen auflösen die dynamische IPs haben, aber das nützt mir NICHTS weil ich die Namen nicht kenne. Es gibt, wie oben erwähnt, keinen Verzeichnisdienst der das kann - es gibt auf der ganzen Welt keinen der das kann und wenn ich so einen erfinden würde ... wer sagt meinem Progrämmchen zur Laufzeit auf welchem Rechner dieser Dienst laufen würde? Auch der hat bei jeder Installation einen anderen Namen ...

Sorry ... aber da muss ich dir jetzt mal diesen Vorschlaghammer zurückgeben ...

Warum wir bis dahin alle an DynDNS gedacht haben : weil du nicht damit rausgerückt bist das du da ganze innerhalb eines LAN's machen willst *zugegeben ... ein Class-A Netz *10.0.0.0/8* ist schon ein etwas größeres LAN* ... und wir alle so "dumm" waren und dachten das du sowas übers Netz machen willst.

Es wäre also von Vorteil für DICH gewesen wenn du das gleich im ersten Post erwähnt hättest anstatt dich erstmal 3 Posts darüber aufzuregen das wir scheinbar alle zu dumm dazu sind um dein Problem zu begreifen ... Aber wenn du der Meinung bist das wir alle Glaskugeln haben und du mit solchen wichtigen Infos nicht rausrückst ... dann beschwer dich nicht drüber wenn niemand dein Problem versteht.


Was eine solche Aktion im LAN angeht : Multicast ! Das mit Broadcast wird in einem Class-A-Netz irgendwo ins Leere laufen ... Multicast und entsprechend konfigurierte Switches und Router sollten hier die Lösung sein.

Ein sehr einfaches Beispiel welches sogar über V-LAN funktioniert *mit einige Modifikationen*

MulticastServer.java
Java:
import java.net.*;
import java.io.*;
public class MulticastServer
{
	static String groupAddress="226.77.45.33";
	static int port=4533;
	public static void main(String[] args)
	{
		try
		{
			byte[] buffer=new byte[128];
			DatagramPacket packet=new DatagramPacket(buffer, buffer.length);
			InetAddress address=InetAddress.getByName(groupAddress);
			MulticastSocket socket=new MulticastSocket(port);
			socket.joinGroup(address);
			while(true)
			{
				socket.receive(packet);
				String message=new String(packet.getData(), 0, packet.getLength());
				if(!message.equals("MULTICAST_DISCOVER"))
					continue;
				System.out.println("Nachricht empfangen: "+message+" von "+packet.getAddress());
				message = "MULTICAST_RESPONSE";
				DatagramPacket response=new DatagramPacket(message.getBytes(), message.length(), packet.getAddress(), packet.getPort());
				socket.send(response);
			}
		}
		catch(Exception e) { e.printStackTrace(); }
	}
}

MulticastClient.java
Java:
import java.net.*;
import java.io.*;
public class MulticastClient
{
	static String groupAddress="226.77.45.33";
	static int port=4533;
	public static void main (String[] args)
	{
		try
		{
			InetAddress address=InetAddress.getByName(groupAddress);
			byte[] message="MULTICAST_DISCOVER".getBytes();
			DatagramPacket packet=new DatagramPacket(message, message.length, address, port);
			MulticastSocket socket=new MulticastSocket();
			socket.setSoTimeout(2000);
			socket.send (packet);
			byte[] b=new byte[128];
			packet.setData(b);
			packet.setLength(b.length);
			socket.receive(packet);
			String response=new String(packet.getData(), 0, packet.getLength());
			if(response.equals("MULTICAST_RESPONSE"))
				System.out.println("Antwort empfangen: "+response+" von "+packet.getAddress());
			socket.close();
		}
		catch (Exception e) { e.printStackTrace(); }
	}
}
 
G

Gast2

Gast
Was ich nicht verstehe, weil ich es noch nie angeschaut habe, ist Mulitcast.
Wie soll denn das mit dem Routing dieser eigentlich virtuellen IP Nummern gehen?
das kann Dir (eigentlich) egeal sein - darum kümmern sich das Netzwerk "selber" ... Du sagst nur eins von 2 Dingen dem Netzwerk
  1. Ich habe hier was auf IP:port für das Netzwerk
  2. Ich will was von IP:port haben
dann kümmert sich Dein Switch, an dem mit Deinem Kupfer- (oder WLAN-) Kabel hängst, das Du entsprechend via Multicast senden bzw. empfangen kannst

Das mit Broadcast wird in einem Class-A-Netz irgendwo ins Leere laufen
hä?? ... dann ist das Netzwerk entsprechend NICHT konfiguriert

Multicast und entsprechend konfigurierte Switches und Router sollten hier die Lösung sein.
ahh - und was ist jetzt der Unterschied zu Broadcast mit entsprechend konfigurierten Switchen ???:L

Ein sehr einfaches Beispiel welches sogar über V-LAN funktioniert
ein V-LAN ist transparent für das Netzwerk ... quasi kann der Teil "V-" völlig ignoriert werden ... darum hat sich nur der Netzadmin zu kümmern - als Programmierer ist das Banane

hand, mogel

BTW: die Netzeinteilung nach Klassen (Class-A, Class-B, etc) ist seit 1993 veraltet
 
S

Spacerat

Gast
Broadcast? Multicast? Egal wie... es dauert unter Umständen viel zu lange, bis alle Server bzw. Clients antworten. Ich würde es so machen, wie es Vuze, E-Mule und wie diese ganzen Filesharingprogramme sonst noch heissen. Verbreiten und ständiges Aktualisieren von Serverlisten. Dazu wäre im Zweifelsfalle aber mindestens ein Server erforderlich, der ständig online ist oder zumindest per Dyn-DNS erreicht werden kann, weil sonst alle aktuellen Serverlisten, die im Umlauf sind, auf einen Schlag ungültig werden würden, wenn das gesamte Netzwerk zusammenbricht.
 
T

TheRealSpikee

Gast
Warum ein Broadcast in einem Class-A ins Leere läuft ? Weil du um ein Class-A aufzubauen eine ganze Menge an Switches und Routern brauchst und das Broadcast irgendwann irgendwo hängen bleibt. Bei einem Multicast gibt es das Problem nicht da dies ein Packet ist was als Ziel eine bestimmte IP hat ... und nicht einfach AN ALLE gehen soll. Das ein Multicast-Paket genau so an alle geht wie ein Broadcast-Paket ist mir auch klar ... jedoch wird ein solches Paket auch geroutet ... was ein Broadcast-Paket eben nicht wird.

DAS ist der Unterschied zwischen Broad- und Multicast ...

Was das V-LAN angeht : ich meinte das es mit genau diesem Source möglich ist auch über V-LAN Multicasts zuversenden ... und das ohne irgendwas am Netz zu ändern. Ich spreche bei V-LAN im übrigen über Software ... also virtuelle NICs ... und nicht über ein physisches V-LAN mit entsprechenden V-LAN Routern ...

@TO
Nun ... das es bei einem Class-A relativ lange dauert bis alle Server erkannt wurden dürfte an der Größe des Netzes liegen. Auch kann es sein das gewisse UDP-Pakete durch Kollisionen verloren gehen ... du also beim ersten Durchlauf unter Umständen nicht alle findest.
 
G

Gast2

Gast
Weil du um ein Class-A aufzubauen eine ganze Menge an Switches und Routern brauchst und das Broadcast irgendwann irgendwo hängen bleibt.
???:L ... vertrau mir - bei 16 Mio Rechner werden auch Multicast-Pakete in den Weiten des Netzwerks verschwinden

Bei einem Multicast gibt es das Problem nicht da dies ein Packet ist was als Ziel eine bestimmte IP hat ... und nicht einfach AN ALLE gehen soll. Das ein Multicast-Paket genau so an alle geht wie ein [...]
im ersten Satz behauptest Du das Multicast nicht an alle geht ... im Zweiten genau das Gegenteil :bahnhof:

Broadcast-Paket ist mir auch klar ... jedoch wird ein solches Paket auch geroutet ... was ein Broadcast-Paket eben nicht wird.
wie ich schon in einem anderem Posting erwähnte ... damit der Broadcast (255.255.255.255) in andere Netze geroutet wird, muss das im Router aktiviert werden ... damit der Router Multicast weiter leitet, muss das aktiviert werden

DAS ist der Unterschied zwischen Broad- und Multicast
es gibt keinen wesentlichen Unterschied zwischen Broadcast und Multicast ... Broadcast und Multicast muss vom Router aktivert werden damit es im gesamten LAN funktioniert ... beides basiert auf UDP und damit geht in beiden Fällen auch mal ein Paket verloren ... also - welchen Qualitativen Vorteil hat an der Stelle Multicast gegenüber Broadcast

hand, mogel

BTW: die Netzeinteilung nach Klassen (Class-A, Class-B, etc) ist seit 1993 veraltet
 
T

TheRealSpikee

Gast
Ey weiste ...

denkst du mir ist das nicht klar das es offiziell diese Netzklasseneinteilung nicht mehr gibt ?

Junge echt ... es reicht wenn man sowas EINMAL schreibt ... wir sind hier in nem Forum ... da kann man auch noch nach 3 Jahren lesen was geschrieben wurde ...

Jedoch ist es bei weitem einfach einfach Class-A zu schreiben als xxx.0.0.0/8 ... außerdem weis jeder der sich halbwegs mit Netzwerken auskennt was damit gemeint ist ... wenn ich mir so den Mist von *namentlich* SemperVideo auf YT ansehe und feststelle wie falsch dort Netzklassen und Subnetmasken erklärt werden ... bleibe ich lieber bei einer 20 Jahre alten Bezeichnungsart die dafür jeder versteht ...


Was den Unterschied Broadcast vs Unicast angeht : mach dir mal den Spass und bau mal folgendes Netzwerk
Code:
       Master-Router
          |        |
Sub-Router 1 Sub-Router 2
|                    |
PC 1               PC 2
Und versuch mal mit Broadcast eine Nachricht zwischen beiden auszutauschen ... das wird nicht funktionieren ... Multicast jedoch schon ...

Nur weil man so n fetter Lobbyist is ... muss mans nich raushängen lassen ...


gott wie ihr mich hier alle anwiedert ... ich glaub ich muss mal ne regel gegen 85.158.183.169 einrichten ...
 
T

Tomate_Salat

Gast
gott wie ihr mich hier alle anwiedert ... ich glaub ich muss mal ne regel gegen 85.158.183.169 einrichten ...

Zwingt dich niemand hier zu sein.

wir sind hier in nem Forum ... da kann man auch noch nach 3 Jahren lesen was geschrieben wurde
hmm. Darüber solltest DU dir vllt mal Gedanken machen.

BTW: die Netzeinteilung nach Klassen (Class-A, Class-B, etc) ist seit 1993 veraltet
 

Andi_CH

Top Contributor
Das läuft jetzt ein bisschen aus dem Ruder - sowohl Thematisch als auch auch im Umgangston - ich markiere das als beendigt und wenn ein Mod den Thread aus irgendeinem Grund schliesst, habe ich gar nichts dagegen einzuwenden ...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Zustand prüfen trotz Loadbalancer Netzwerkprogrammierung 3
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
W RMI Verschiedene Unterobjekte trotz selbem Remote Object Netzwerkprogrammierung 2
Kr0e Datenaustausch trotz NIO nur halb so schnell Netzwerkprogrammierung 6
C NetScanner arbeitet trotz Threads langsam Netzwerkprogrammierung 6
A Googleanfrage trotz firewall und proxi Netzwerkprogrammierung 3
R "Class not found" trotz gesetztem CLASSPATH Netzwerkprogrammierung 4
R Port trotz aktiver Firewall nutzen ! Netzwerkprogrammierung 9
F http Post auf einen Grafana Server Netzwerkprogrammierung 3
W Socket Server -> lesen von / schreiben zu php-script Netzwerkprogrammierung 6
E Server mit GUI Netzwerkprogrammierung 4
E FTP FTPS Server gibt Fehlernachricht "522 SSL/TLS required on the data channel" zurück Netzwerkprogrammierung 1
I Performanteste Kommunikationsmethode zwischen Client u. Server Netzwerkprogrammierung 4
L Socket Automatische Zuweisung von Server und Client Rolle Netzwerkprogrammierung 12
Eigenen Rechner als Server? Netzwerkprogrammierung 16
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
ExceptionOfExpectation Server/Client-Kommunikation Netzwerkprogrammierung 34
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
J Datei Download vom Server Netzwerkprogrammierung 8
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Yonnig Threads mit Client/Server und GUI (laufend bis button-click) Netzwerkprogrammierung 9
J Client-Server und SOAP Netzwerkprogrammierung 23
K Threads/Server/telnet Fehler Netzwerkprogrammierung 2
J Multithreaded-Server Netzwerkprogrammierung 21
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
L30nS RMI RMI-Server kann Dialog nicht volkommen anzeigen Netzwerkprogrammierung 2
L30nS RMI Aufruf einer Client-Methode von einem RMI-Server Netzwerkprogrammierung 3
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
T String von Client zu Server kommt nicht an Netzwerkprogrammierung 92
D WebSocket Server mit HTML Client und Java Server Netzwerkprogrammierung 5
S Von Java auf passwortgeschützten Server zugreifen + Umgang mit Ports Netzwerkprogrammierung 28
S Probleme bei Java-Installation auf Server (Linux/Shell/Terminal) Netzwerkprogrammierung 6
S Java: Anbindung an einen realen Server? (+ Portfreigabe) Netzwerkprogrammierung 8
D Server - Client Informationsaustausch, Möglichkeiten Netzwerkprogrammierung 3
H Socket Kann ein Socket server 2 dimensionale Arrays empfangen und versenden? 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
Z Kann nicht Daten vom Server lesen Socket Netzwerkprogrammierung 10
S HTTP Post?!? - Java Server Netzwerkprogrammierung 7
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Slf4j - Logging - Client-Server Architektur Netzwerkprogrammierung 3
F NodeJs-Server auf Firebase hosten ? 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
H HTTP Glassfish (v5) Application Server - Bibliothek zur Verfügung stellen Netzwerkprogrammierung 4
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
P TCP-Server Netzwerkprogrammierung 1
R Socket FATAL EXCEPTION MAIN bei Socket based client/server app Netzwerkprogrammierung 2
F Server für Java Applikationen Netzwerkprogrammierung 16
H Einfacher Server funktioniert nicht Netzwerkprogrammierung 1
G Server-Client IO Problem Netzwerkprogrammierung 6
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
I Socket Das erste Server-Client Programm Netzwerkprogrammierung 16
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
L Socket Wie kann ich checken ob ein User eine Nachricht per Outputstream an den Server gesendet hat? Netzwerkprogrammierung 1
T Jetty Server LOGGING Netzwerkprogrammierung 1
L Strings an Server senden und in MYSQL speichern? Netzwerkprogrammierung 3
Aruetiise Socket Java Programm auf Server Netzwerkprogrammierung 3
T server empfängt nur 1 Buchstaben vom String Netzwerkprogrammierung 1
S Spiel mit Server programmieren Netzwerkprogrammierung 2
N Post u Head Request an Server Netzwerkprogrammierung 4
J Socket Ein Chat Server Tutorial Netzwerkprogrammierung 8
M Socket Server antwortet dem Client nicht Netzwerkprogrammierung 6
J Socket Tutorial zu Multiplayer Server schreiben? Netzwerkprogrammierung 5
S Java Chat Server Netzwerkprogrammierung 8
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
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 Message an einen Server senden? Netzwerkprogrammierung 8
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
KaffeeFan Programmierung mit Cloud-Server Netzwerkprogrammierung 0
L Socket Problem mit Server Netzwerkprogrammierung 1
cezary Socket Paralleler Server ? Netzwerkprogrammierung 1
I Socket Leicht zu DDosender Server Netzwerkprogrammierung 4
agent47 HTTPs Server Netzwerkprogrammierung 5
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
J Prüfen, ob remote UDT Server erreichbar ist Netzwerkprogrammierung 0
P Server als Client nutzen Netzwerkprogrammierung 8
S Server Kommunikation Netzwerkprogrammierung 1
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
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
S Webservice - Server Netzwerkprogrammierung 0
M Java Eingabe auf FTP Server übergeben Netzwerkprogrammierung 4
F Server Client Anwendung mit UDP Netzwerkprogrammierung 2
A RMI Wo treten Exceptions bei RMI Aufrufen auf? Auf Client oder auf Server? Netzwerkprogrammierung 3
M Socket Java Server: NullPointerException Netzwerkprogrammierung 4
A ByteBuffer - Client/Server Netzwerkprogrammierung 9
J Java Server empfängt php inhalt nicht Netzwerkprogrammierung 1
K C# Server - Android Client Netzwerkprogrammierung 0
J Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML Netzwerkprogrammierung 1
D Mit Server Daten austauschen Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben