Looking for DataWriter Alternatives for UWP (.Net Core)

So I'm messing around with UWP and by that I mean StreamSockets and DataReaders and I came up with the Universal Issue with DataReader.

How do you read a message when you don't know it's length?

The example I've found everywhere is this:

        var reader = new DataReader(socket.InputStream);
            reader.InputStreamOptions = InputStreamOptions.Partial;

        List<byte> byteList = new List<byte>();

        await reader.LoadAsync(1);
        while (reader.UnconsumedBufferLength > 0)
        {
            byte[] buffer = new byte[reader.UnconsumedBufferLength];

            reader.ReadBytes(buffer);

            foreach (byte b in buffer)
            {
                byteList.Add(b);
            }

            await reader.LoadAsync(1);
        }

Now the issue with it is that last line await reader.LoadAsync(1); at the bottom of the while loop as it will hang there forever after the message is received.

UWP is pretty limiting on what you can do with the InputStream so as far as I know you can't directly mess with the MemoryStream...

Given the number of people asking the question I assume there are some creative solutions that my GoogleFu is failing to find. So does anyone know of another way I can tackle this or other creative solutions?