Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static async Task ReceiveDataFromRemoteSocket(
- Socket socket,
- int numBytesExpectedToReceive)
- {
- int numBytesLeftToReceive = numBytesExpectedToReceive;
- using (MemoryStream memoryStream = new MemoryStream(numBytesExpectedToReceive))
- {
- byte[] dataBuffer = new byte[1024];
- ArraySegment<byte> dataBufferSegment = new ArraySegment<byte>(dataBuffer);
- int totalBytesReceived = 0;
- while (numBytesLeftToReceive > 0)
- {
- Array.Clear(dataBuffer, 0, dataBuffer.Length);
- int numBytesReceived = await socket.ReceiveAsync(dataBufferSegment, SocketFlags.Partial);
- Console.WriteLine($"Received {numBytesReceived} bytes of data at {DateTime.UtcNow.ToShortTimeString()}.");
- totalBytesReceived += numBytesReceived;
- memoryStream.Write(
- dataBuffer,
- 0,
- numBytesLeftToReceive < dataBuffer.Length ? numBytesLeftToReceive : dataBuffer.Length);
- numBytesLeftToReceive -= numBytesReceived;
- }
- Console.WriteLine($"Total number of bytes received, according to tally: {totalBytesReceived}.");
- Console.WriteLine($"Memory stream: Contains {memoryStream.Length} bytes' worth of data.");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement