This topic has not yet been rated - Rate this topic

SocketAsyncEventArgs.BufferList Property

Gets or sets an array of data buffers to use with an asynchronous socket method.

Namespace:  System.Net.Sockets
Assembly:  System (in System.dll)
public IList<ArraySegment<byte>> BufferList { get; set; }

Property Value

Type: System.Collections.Generic.IList<ArraySegment<Byte>>
An System.Collections.IList that represents an array of data buffers to use with an asynchronous socket method.
Exception Condition
ArgumentException

There are ambiguous buffers specified on a set operation. This exception occurs if the Buffer property has been set to a non-null value and an attempt was made to set the BufferList property to a non-null value.

This property is used with the Socket.ReceiveAsync and Socket.SendAsync methods.

This property is used to provide multiple buffers of data to be sent or to provide multiple buffers in which to store received data for an asynchronous socket operation that can send or receive data. Multiple buffers using the BufferList property are supported by the Socket.ReceiveAsync and Socket.SendAsync methods.

If the BufferList property is set to a non-null value, the Buffer property must be null and is ignored by the Socket.ReceiveAsync and Socket.SendAsync methods.

If the Buffer was set to a non-null value and an attempt is made to set the BufferList property to a non-null value, an exception is thrown.

If the BufferList property is set to a non-null value, the Socket.ConnectAsync and Socket.AcceptAsync methods will throw an ArgumentException.

The BufferList parameter is ignored by the Socket.DisconnectAsync and Socket.SendPacketsAsync methods.

.NET Framework

Supported in: 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Is there an example?
Documentation on this method and how to use it are almost non-existent. When should you use a bufferlist instead of a normal buffer? Is there an example of using this with RecieveAsync? How do you use the results? What if the data sent is larger than the buffer size that is allocated? How do you get the balance of the buffer in this situation? I have seen these questions asked all over the web, with few answers.