L
LeRoi
Gast
Hallo miteinander,
ich hab folgendes Problem mit RMI.
Ich schreibe ein kleines Programm bei welchem ein Client einen String an einen Server sendet
und dieser den String unbehandelt wieder zurück sendet (quasi nen echo). Der Client misst dabei
die benötigte Zeit. Das ganze wird mit verschiedenen Größen gemacht um eine Aussage über
Übertragungsrate etc. machen zu können. Nun hab ich folgendes Problem, ich habe 2 PC's
auf den einmal der Server auf den anderen der Client läuft. Nach der Zeitmessung brauchten selbst
grössere Daten (64MB) nur ein paar hundert Millisekunden für den Weg was mich stutzig machte. Ein println()
auf Serverseite ergab eine Ausgabe der Strings in der Console des Clients und nicht auf der Console des Servers.
Quasi wurde die Funktion lokal behandelt und nicht auf dem entfernten Rechner. Meine Frage ist: Wieso?? Müsste der
Stub das nicht an die Serinstanz auf den entfernten rechner weiterleiten??
Hier mal Auszüge aus dem Programm, ich find irgendwie nichts komisches dabei:
Server:
Echo-Funktion auf dem Server:
Client:
Ich hoffe jemand weiß ne Lösung, wäre dafür sehr dankbar.
MfG LeRoi
ich hab folgendes Problem mit RMI.
Ich schreibe ein kleines Programm bei welchem ein Client einen String an einen Server sendet
und dieser den String unbehandelt wieder zurück sendet (quasi nen echo). Der Client misst dabei
die benötigte Zeit. Das ganze wird mit verschiedenen Größen gemacht um eine Aussage über
Übertragungsrate etc. machen zu können. Nun hab ich folgendes Problem, ich habe 2 PC's
auf den einmal der Server auf den anderen der Client läuft. Nach der Zeitmessung brauchten selbst
grössere Daten (64MB) nur ein paar hundert Millisekunden für den Weg was mich stutzig machte. Ein println()
auf Serverseite ergab eine Ausgabe der Strings in der Console des Clients und nicht auf der Console des Servers.
Quasi wurde die Funktion lokal behandelt und nicht auf dem entfernten Rechner. Meine Frage ist: Wieso?? Müsste der
Stub das nicht an die Serinstanz auf den entfernten rechner weiterleiten??
Hier mal Auszüge aus dem Programm, ich find irgendwie nichts komisches dabei:
Server:
Code:
LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
System.setSecurityManager(new RMISecurityManager());
Naming.rebind("RTTServer", im);
System.out.println("Server ready");
Code:
public String echo(String s) throws RemoteException {
return s;
}
Client:
Code:
IServer server = (IServer) Naming.lookup("rmi://" + host
+ "/RTTServer");
server.echo("Test");
Ich hoffe jemand weiß ne Lösung, wäre dafür sehr dankbar.
MfG LeRoi