Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 25th, 2012  |  syntax: C#  |  size: 1.04 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.         /// <summary>
  2.         /// Continually reads data from the stream until all data has been read.
  3.         /// </summary>
  4.         /// <param name="socket">The socket to read data from.</param>
  5.         /// <returns></returns>
  6.         private byte[] GetData(ref Socket socket)
  7.         {
  8.  
  9.             // create an initial buffer list to hold all the data
  10.             var buffer = new List<byte>();
  11.  
  12.             // okay, now create a big buffer.
  13.             var bufferArray = new byte[socket.ReceiveBufferSize];
  14.  
  15.             // fill it
  16.             var length = socket.Receive(bufferArray);
  17.  
  18.             // trim the data
  19.             Array.Resize(ref bufferArray, length);
  20.  
  21.             // add it to the buffer
  22.             buffer.AddRange(bufferArray);
  23.  
  24.             // check; allows us to keep receiving data.
  25.             if (length.Equals(socket.ReceiveBufferSize) || socket.Available > 0)
  26.                 buffer.AddRange(GetData(ref socket));
  27.  
  28.             // all done, give the buffer back now
  29.             return buffer.ToArray();
  30.  
  31.         }