WinRT/Metro アプリで StreamSocket.InputStream.ReadAsync() を使用してバイト読み取りを行っていますが、実際に読み取られたバイト数を知る必要があります。この読み取りは同期読み取りとして扱われており、同期読み取りのままにしておく必要があります。
関連するコード スニペットは次のとおりです。
var receivedTask = this._socket.InputStream.ReadAsync(buffer.AsBuffer(), length, Windows.Storage.Streams.InputStreamOptions.None);
receivedTask.AsTask().Start();
receivedTask.AsTask().Wait(timeout);
// Need code here to get the number of bytes received
if (receivedBytes > 0)
{
receivedTotal += receivedBytes;
continue;
}
else
{
// Socket Closed
}