C # How to convert System.Net.ConnectStream to byte [] (array)

im trying to convert a stream (System.Net.ConnectStream) to an array of bytes. Any thoughts / examples on how to do this?

+5
source share
3 answers
Stream sourceStream = ... // the ConnectStream
byte[] array;
using (var ms = new MemoryStream())
{
    sourceStream.CopyTo(ms);
    array = ms.ToArray();
}
+12
source

Try it...

    private static readonly object _lock = new object();

    public static byte[] readFullStream(Stream st)
    {
        try
        {
            Monitor.Enter(_lock);
            byte[] buffer = new byte[65536];
            Int32 bytesRead;
            MemoryStream ms = new MemoryStream();
            bool finished = false;
            while (!finished)
            {
                bytesRead = st.Read(buffer.Value, 0, buffer.Length);
                if (bytesRead > 0)
                {
                    ms.Write(buffer.Value, 0, bytesRead);
                }
                else
                {
                    finished = true;
                }
            }
            return ms.ToArray();
        }
        finally
        {
            Monitor.Exit(_lock);
        }
    }
+4
source

One answer from Freeetje has a writen method called "ReadToEnd". Worked like a charm for me ...

How to get file size from Microsoft.SharePoint.Client.File object?

0
source

All Articles