PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateiübertragung mit Java


DocEW
2006-01-16, 16:48:04
Hi,

ich hab so ein kleines Tool geschrieben, was einfach eine Datei über einen Socket versenden kann. Das ganze besteht aus Server und Client, ist ja in Java ganz einfach.

Jetzt die Frage: Da ich einfach einen Byte-Strom versende, bleibt natürlich der Dateiname auf der Strecke. Wie bekomme ich den rüber? Muß ich das selbst basteln, so eine Art Mini-Protokoll? Also erst den Dateinamen übertragen (als Text) und dann die Datei? Oder gibt's da ne einfache Lösung?

Gruß,

DocEW

Monger
2006-01-16, 16:53:11
Die Lösung dir mir gerade einfällt ist, dass ganze in einer Art Containerklasse abzulegen, und dort auch gleich den Namen zu vermerken.

So à la (ohne Gewähr)



class Container implements Serializable{

File file; // Edit: das hier ist natürlich Quatsch, weil File nur eine
//Pfadangabe enthält. Aber du weißt was ich meine...
String name;
// ...
}



Hab noch keine Dateien direkt serialisiert, aber im Grunde sind die doch auch nur Objekte, die über die Leitung geschoben werden, oder?

bulla
2006-01-17, 13:36:47
Am einfachsten ginge es, wenn du dem Bytestream den Dateinamen als binary-string (sozusagen als neuen header) einfach voranstellst und ihm eine feste grösse gibst, z.b. 1kb oder so.
der empfänger schneidet diese 1kb wieder ab und wandelt den binärcode wieder in den dateinamen um; in der string-klasse sollte es solche funktionen geben (getbytes[] z.b.)

DocEW
2006-01-17, 13:39:41
OK, läuft also auf selber machen hinaus, danke.