Was sind die möglichen Ursachen für stream nicht beschreibbar Ausnahme?
Was sind die möglichen Ursachen für Stream nicht Beschreibbar Ausnahme beim serialisieren von benutzerdefinierten Objekts über TCP mit Netzwerk-Streams in C#.
Ich sende die Mp3-Daten in form von Paketen.Der Rahmen besteht aus Byte[] Buffer.Ich bin Mit Binary Formatter serialisieren Sie das Objekt.
BinaryFormatter.Serialize(NetworkStream,Packet);
Den Mp3 Gespielt wird auf dem client mit Verzerrungen und Bammel Ende für paar Sekunden und dann Die oben erwähnte Ausnahme ausgelöst.Ich m mit NAudio Open-Source-Bibliothek für Sie.
Bevor Sie diese änderung war ich mit
NetworkStream.Write(Byte[] Buffer,0,EncodedSizeofMp3);
und es war das schreiben erfolgreich, bevor er keine Ausnahme
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie sich schriftlich zu einem
NetworkStream
, die stream/socket geschlossen werden könnteWenn Sie sich schriftlich zu einem
NetworkStream
, es hätte erstellt mitFileAccess.Read
Wenn ich raten müsste, obwohl, es klingt wie etwas, das die Schließung der stream - dies kann der Fall sein, wenn, sagen wir, ein "Schriftsteller" auf der Strecke davon ausgegangen, dass es besitzt den stream, also den stream schließt vorzeitig. Es ist ziemlich üblich, zu schreiben, nutzen Sie eine Art wrapper
Stream
ignoriert, dassClose()
Anfragen (ich habe eins vor mir, gerade jetzt, in der Tat, da Schreibe ich einige TCP-code).Als kleine Nebenbemerkung; ich generell abraten
BinaryFormatter
für comms (außer remoting) - am wichtigsten: es keine "version" in einer sehr freundlichen Art und Weise, aber es neigt auch dazu, ein wenig ausführlich, in den meisten Fällen.Hier ist der wrapper verwende ich momentan, falls es hilft (die
Reset()
Methode fälscht zurücksetzen der position, so der Anrufer kann Lesen relative position):