RMI Informationen über die Clients herausfinden

Logitech

Mitglied
Hallo,

ich spiele mit dem Gedanken, eine Netzwerkkommunikation per RMI zu lösen. Jetzt habe ich dazu zwei Fragen:

1.) Ich habe mittlerweile lauffähigen Code für einen Server+Client. Jetzt frage ich mich, wie kann der Server an direkte Informationen der Clients gelangen. Bspw. die IP-Adresse eines Clients, wenn sich dieser verbinden will.

2.) Wie würde man mit RMI am ehesten eine Art Authentifizierung (ohne Zertifikate) realisieren? Sowas wie Übertragung von Name+Passwort

3.) Wie würde ich mit RMI geschickt große Datenmengen übertragen. Client und Server sollen sich verabreden und dann soll es möglich sein, Dateien zu übertragen die gerne mal 100mb groß sind. Ist das mit RMI direkt machbar oder brauche ich dann doch wieder Sockets?

Danke für eure Hilfe :)
 

Logitech

Mitglied
Weil mein erster Post vielleicht unklar war:

Der komplette Verbindungsaufbau zwischen Server/Client bleibt mir bei RMI irgendwie verborgen.
Ich will aber genau da einhaken, wo sich z.B. ein neuer Client verbindet; ich will wissen von welcher IP die Verbindung stammt und selber festlegen, welcher Socket jetzt verwendet werden soll.

Wie geht das?

// Hier ist einer mit demselben Problem:
RMI: how to get client info?

Angenommen ein Client fragt beim Server an "Zeig mir meine offenen Aufträge", dann muss ich ja wissen welcher Client genau das ist.
 
Zuletzt bearbeitet:

Kr0e

Gesperrter Benutzer
Tuxedo würde dir an dieser Stelle "SIMON" ans Herz legen, was ich damit nun auch gerade getan hab :p

SSL ohne Zertifikat ist damit leicht möglich... Such mal im Forum nach SIMON. Ist von der Funkionalität her ähnlcih wie RMI und vergleichbar im Aufwand allerdings schneller. Außerdem sind damit Rohdatenübertragungen ganz leicht. Sprich du kannst Dateien beliebiger GRöße bei gleichbleibener Performance übertragen.

Keine Ahnung inwieweit man bei SIMON Infos über die Clienten herausfinden kann, aber ich denke das sollte ganz leicht machbar sein, da SIMON auf Apache MINA basiert... Schau dir auf seiner Seite mal die Infos und Beispiele an...

Gruß,
Chris
 

L-ectron-X

Gesperrter Benutzer
Ich denke, das geht, in dem der Client auch ein Server ist, der über Callback vom RMI-Server über seine Daten gefragt werden kann.
Man könnte auch bei der Verbindung zum RMI-Server die Daten des Clients in einem Objekt an den Server übergeben. Aber dann wäre erst mal keine Callback-Verbindung möglich.
Es kommt darauf an, was genau du machen möchtest.
 
Q

Quurks

Gast
1) zu SIMON: ich habe mich eigentlich gewundert, dass noch kein Post von tuxedo dar war, als ich gelesen hab dass es um RMI geht
2) zur Authentifizierung: mein Vorschag wäre der Client holt sich vom Server eine Zufallszahl, die der Server auch speichert. Dann kann beim Clienten der Benutzername sowie der md5-Hash vom Passwort an den Server geschickt werden, der auch den md5 Hash vom Passwort und der Zufallszahl bildet und dann vergleichen kann ob das Passwort stimmt. Wichtig hierbei ist, dass der Client sich nicht irgendeine Zufallszahl aussuchen kann, sonder nur die, die vorher vom Server kam.

Nochmal kurz:
Server macht Zufallszahl
Zufallszahl geht an Client
Client mach md5(Zufallszahl+EingegebenesPasswort)
Client sendet md5 an Server
Server macht md5(Zufallszahl + Gespeichertes Passwort)
Server kann vergleichen ob anmeldung richtig
 
T

tuxedo

Gast
1) zu SIMON: ich habe mich eigentlich gewundert, dass noch kein Post von tuxedo dar war, als ich gelesen hab dass es um RMI geht

Hehe ... War ne Woche im Urlaub.

Bei SIMON kommt man ganz easy an IP und Absender-Port eines Clients. Siehe dritten Code-Teil der Wiki-Seite:

SIMON - Sample helloworld - root1.de - Software Engineering

Bzgl. Authentifizierung: Naja, da kann man sich mit Hashs und Co. austoben. Im großen und ganzen macht man das aber über eine Session-Factory (ich nenn das immer so, keine Ahnung ob dafür einen "offiziellen Pattern-Namen" gibt). Beispielcode hier:

SIMON - /trunk/samples/src/main/java/de/root1/simon/samples/loginsessionfactory - root1.de - Software Engineering

Kann man übrigens fast 1:1 auch bei RMI so anwenden. Die implementierung kurz zusammengefasst: Wer sich nicht eingeloggt/angemeldet/authentifiziert hat, bekommt nix anderes als die Login-Methode zu sehen. Alles andere ist und bleibt "verborgen".

- Alex
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Informationen über Netzwerkclients herausfinden Netzwerkprogrammierung 2
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
T VPN-Verbindung über Java Netzwerkprogrammierung 4
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
A Computer über Internet verbinden Netzwerkprogrammierung 12
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
E Java über Socket ins Internet? Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
A HTTP Binärdaten über PHP-Skript in Datenbank schreiben bzw auslesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P FTP isFile() über FTP Netzwerkprogrammierung 3
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
F Char über Netzwerk senden Netzwerkprogrammierung 6
S HTTP Login mit CAS Authentisierung über SSL Netzwerkprogrammierung 2
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Google Translate über Java ansprechen? Netzwerkprogrammierung 13
F Socket ImageIcon über Socket --> Fehler Netzwerkprogrammierung 14
N Datenaustausch zwischen Java-GUI und PHP-Programm über SOAP Netzwerkprogrammierung 19
R HTTP Problem bei Authentifizierung über (Http)UrlConnection Netzwerkprogrammierung 2
1 Kommunikation mit externem Programm über TCP Netzwerkprogrammierung 2
J Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet Netzwerkprogrammierung 3
T E-Mail über javax.mail.Message Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben