# über rmi datei übertragen?



## schuetzejanett (10. Jul 2007)

Hallo,

ich schreibe eine client-server Applikation über rmi.
Auf dem server befindet sich eine pdf Datei, wie bekomme ich diese zum Client. Möchte sia auf dem client eigentlich nur anschauen und drucken.

Hab aber keine so rechte idee, wie ich das anstelle, also wie sieht meine interface methode, die methode des servers und die des clients zum aufruf aus. 
Und muss ich beim aufruf angeben wo ich die daei speichern will, oder mache ich das dann wen ich sie habe?. Und welchen rückgabetyp hat die methode um die pdf datei zu speichern?

Freue mich über anregungen und codebsp, weil ich irgendwie total auf dem schlauch stehe.


----------



## tuxedo (10. Jul 2007)

Naja, RMI delegiert ja nur Methodenaufrufe... Du kannst also deinem Server eine Methode geben mit der man Dateien öffnet...  Und der Client benutzt die dann.

Was ich jetzt aber nicht auswendig weiß:

Wenn du auf der Client-Seite eine Methode des Servers benutzt um Dateien zu lesen: Wird dann auch der Kontext des Servers benutzt? D.h. wenn ich mit File f = new File("c:\meinepdf.pdf") mache, wird dann das C: des Servers oder des Clients benutzt. 
Solltest du mal testen.  Würd mich auch interessieren.
Und wenns klappt hast du deine Lösung


----------



## Yzebär (12. Jul 2007)

Um eine Datei übertragen zu können, benutzt du einfach eine Methode die ein byte[] zurückgibt, das der Client direkt in eine Datei schreibt. 

Ich hatte früher mal was ausprobiert, das dann ungefähr diese Spezifikation hatte:

```
public String[] getDateinamen()
...
public byte[] getDatei(String dateiname)
```

Mit der ersten Methode holt sich der Client eine Liste aller verfügbaren Dateien und ruft dann mit dem Namen der ausgewählten Datei getDatei auf. 

Man könnte auch eigendefinierte Objekte für die Parameter und Rückgabewerte verwenden, die dann mehr Informationen enthalten.


----------

