Il metodo che chiami sul client è un metodo remoto? E' cioè presente in un'interfaccia remota implementata dal client? In caso contrario, è corretto che il codice del client venga eseguito sulla macchina del server: quando il server ottiene il riferimento al client in realtà ne ottiene una copia: il client sulla macchina client e il client sulla macchina server ora sono due oggetti distinti, senza legami. Dovresti avere un metodo remoto per fare quello che vuoi fare.Originariamente inviato da foralobo
Non ho capito la domanda.
Vediamo se riesco ad interpretarla:
Il server mette nel registro il riferimento di se stesso:
Il client si collega ed ottiene un riferimento al server cosi:codice:try { LocateRegistry.createRegistry(1099); } catch (ExportException ex) { System.out.println("ERRORE..."); } String path = "rmi://localhost/ServerImpl"; Naming.rebind( path, this );
dove "ipServer" è l'ip del pc dove gira il server.codice:String remoteName = "rmi://" + ipServer + "/ServerImpl"; server = (IServer) Naming.lookup( remoteName );
Una volta che il client ottiene un riferimento al server, chiama un , metodo sul server perchè il server possa ottenere il riferimento al client. Il metodo in questione è quello citato prima (initalizeChannel) e come parametro di questo metodo viene passato il riferimento stesso al client di modo che il server possa invocare i metodi del client.

Rispondi quotando