danielf - Do 25.02.10 11:52
Titel: Datei von .NET zu Java via Socket übertragen
Hallo,
ich habe folgenden Anwendungsfall: Ich will eine Datei von einer Anwendung zur Anderen übertragen. Auf der einen Seite habe ich einen Java Server und auf der anderen einen .NET Client. Theoretisch funktioniert es... praktisch leider nicht.
Und zwar habe ich folgendes:
Sender (.NET):
C#-Quelltext
1: 2: 3: 4: 5: 6:
| byte[] fileContent = File.ReadAllBytes(file.FullName);
SendMsg("LOAD " + file.Name + " " + fileContent.Length); _writer.Write(fileContent); _writer.Flush(); |
Empfänger (Java):
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| String[] args = _reader.readLine().split(" ", 2); String[] loadArgs = args[1].split(" "); String filename = loadArgs[0]; int size = Integer.parseInt(loadArgs[1]);
File f = new File(filename); byte[] fileData = new byte[size]; _client.getInputStream().read(fileData);
FileOutputStream fos = new FileOutputStream(f); fos.write(fileData); fos.flush(); fos.close(); |
Anmerkung zum Ablauf:
Ich sende dem Empfänger den Befehl "LOAD <filename> <filesize>NEWLINE";
Daraufhin ließt er filesize bytes vom Input-Stream und speichert diese in einer Datei.
Das funktioniert (Größe etc. passt anscheinend), allerdings ist die erzeugte Datei (Binärformat) unterschiedlich zu der versendeten (sagt zum Beispiel ExamDiff). Leider weiß ich nicht warum. Ich dachte wenn ich die Datei byte-weiße übertrage ist das Format Wurst?
Ich hoffe es hat jemand eine Anregung wo der Hacken liegen könnte (Betriebssystem ist das selbe).
Danke & Gruß
Daniel