PrintWriter

Hallo,

ich schreibe eine kleine Anwendung zum Austausch von MP3s. Es funktioniert auch schon recht nett, aber ich habe ein Problem. Wenn Files von einem Linux-Client auf einen Linux-Server übertragen werden klappt alles. Von einem Windows-Client auf den Linux-Server _scheinbar_ auch. Wenn ich aber nachher das MP3 anhöre, scheint es „etwas“ kaputt zu sein. Man kann schon noch einigermassen erkennen, was es für ein Lied sein soll, aber es hat viele Störungen drin.
Die Verbindung wird über den PrintWriter aufgebaut:

try {
// Verbindung aufbauen
s = new Socket(„192.168.1.128“, 2122);
if (s != null) {
s.setSoTimeout(3000);
out = new PrintWriter(s.getOutputStream(), true);

[…]

der Server empfängt die Daten dann mit

in = new BufferedReader(new InputStreamReader(s.getInputStream()));

und liest die Daten mit

readBytes = in.read(buffer, 0, bytesToRead);

Ich hoffe, das reicht an Info. Weiss nun jemand, woran das liegen kann?

Vielen Dank schon mal…

Hi,

Die Verbindung wird über den PrintWriter aufgebaut:

Die Writer und Reader Klassen sind nur für *Text* und filtern den Stream je nach gewähltem Encoding. Du musst stattdessen alles auf reine Stream-Klassen aufbauen.

viele Grüße Ralf

http://www.3dc.de

Vielen Dank,

welche Klassen eignen sich denn am besten zur Übertragung von binären Daten?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Von deinem Socket kriegst du ja per socket.getOutputStream() einen OutputStream, da kannste direkt mit den write() Methoden draufschreiben. Ich weiss grade nicht genau wie das implementiert ist, eventuell würde es auch noch Sinn machen diesen Stream in einen BufferedOutputStream zu wrappen, aber versuchs erstmal ohne.

Grüße
Bruno

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]