2016-05-08 7 views
0

Zunächst bin ich sehr neu zu diesem Thema, also habe ich im Internet gesucht und einige Dinge über TCP-und Socket-Verbindungen gefunden. Ich habe eine App auf meinem Smartphone, die als Server fungiert und eine WinForms-Anwendung, die der Client ist. Jetzt habe ich das in meiner App probiert:Senden und Empfangen von Dateien über TCP-Verbindung zwischen Server und Client

wo Ausgabedatei ist eine Audiodatei im MP3-Format und s ist ein Socket.

Auf der Client-Seite habe ich eine TCP-Verbindung:

using (var stream = client.TcpClnt.GetStream()) 
       using (var output = File.Create(Path.Combine(Directory.GetCurrentDirectory(), "Audio.mp3"))) 
       { 
        // read the file in chunks of 1KB 
        var buffer = new byte[1024]; 
        int bytesRead; 
        while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) 
        { 
         output.Write(buffer, 0, bytesRead); 
        } 
       } 

Am Ende ich eine Audiodatei nur erhalten, die 23kb groß ist und nicht geöffnet werden kann. Was mache ich hier falsch?

EDIT:

Ich habe versucht, alos diese

Socket socket = TcpClnt.Client; 

und dann

while ((bytesRead = socket.Receive(buffer, 0, buffer.Length, SocketFlags.None)) > 0) 

die Datei noch 23kb hat (vielleicht ist das in Ordnung, ich weiß es nicht.), Aber die Datei ist immer beschädigt und kann nicht vom Media Player geöffnet werden.

+0

Versuchte output.Close() nach der while-Schleife, aber diese nicht – Canox

Antwort

0

verwenden eine für Audiodateien:

Stream output = new StreamWriter(outputfilename,true) 
Mp3FileReader reader = new Mp3FileReader(file); 
Mp3Frame frame; 
while ((frame = reader.ReadNextFrame()) != null) 
{ 
output.Write(frame.RawData, 0, frame.RawData.Length); 
} 
+0

hilft Das ist mit NAudio richtig? Ich würde das besser ohne Drittanbieter-Bibliotheken tun, wenn es möglich ist – Canox

+0

Ihr Code für die Schreibdatei ist korrekt stellen Sie sicher, dass Sie "EndFile (outputFile);" Dies erzeugt oder sendet ein rechtes Objekt. –

+0

Ja, ich habe. Trotzdem kann die Datei nicht geöffnet werden. – Canox

Verwandte Themen