4 Stimmen

Java: Wie kann man Clients dazu bringen, einen Server im Netzwerk zu erkennen?

Während meiner Zeit an der Universität hatte ich ein persönliches Projekt zur Entwicklung eines einfachen Chat-Programms in Java, das TCP-Sockets verwendet. Das Projekt war nur für Ausbildungszwecke gedacht.

Was mir nicht gefiel, war, dass ein Client die IP des Servers kennen musste, um eine Verbindung herzustellen. Also dachte ich mir, es wäre schön, wenn die Clients erkennen könnten, ob im Netzwerk Chatserver verfügbar sind.

Wie kann ich einen solchen Mechanismus bewerkstelligen? Wenn Sie mir die richtige Richtung weisen könnten, wäre ich Ihnen dankbar :-)

Ich denke, der Server müsste eine Art von Broadcasting durchführen, aber ich bin mir nicht sicher, wie man das macht.

PS: Ich weiß, dass es wahrscheinlich andere/bessere Wege gibt, dies zu tun, aber im Moment bin ich speziell daran interessiert, wie man einen Client dazu bringt, Server im Netzwerk zu erkennen.

Und mit Server meine ich den serverseitigen Teil der Chat-Anwendung, nicht etwa einen Tomcat-Server.

3voto

Peter Tillemans Punkte 34359

Es gibt viele Möglichkeiten, dies zu tun, aber ich empfehle einen Blick auf JGroups . Für eine Chat-Anwendung mag es etwas übertrieben sein, aber die Verwendung von Multicast bietet interessante Möglichkeiten wie serverlose Architekturen.

2voto

Schauen Sie sich ZeroConf an, das Mechanismen zur Ankündigung und Erkennung von Diensten bietet. Apple verwendet dies ausgiebig unter dem Namen Bonjour.

Das jmdns-Projekt ist eine Java-Implementierung, die recht gut funktioniert. http://jmdns.sourceforge.net/

2voto

Bruno Punkte 114719

Sie können versuchen, Multicast zu verwenden, wenn es in Ihrem Netzwerk aktiviert ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X