Socket.EndAccept Method (Byte[], IAsyncResult)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. This method returns a buffer that contains the initial data transferred.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)

member EndAccept : 
        buffer:byte[] byref *
        asyncResult:IAsyncResult -> Socket


Type: System.Byte[]

An array of type Byte that contains the bytes transferred.

Type: System.IAsyncResult

An IAsyncResult object that stores state information for this asynchronous operation as well as any user defined data.

Return Value

Type: System.Net.Sockets.Socket

A Socket object to handle communication with the remote host.

Exception Condition

Windows NT is required for this method.


The Socket object has been closed.


asyncResult is empty.


asyncResult was not created by a call to BeginAccept.


EndAccept method was previously called.


An error occurred when attempting to access the Socket See the Remarks section for more information.

EndAccept completes a call to BeginAccept. Before calling BeginAccept, you need to create a callback method that is invoked by the AsyncCallback delegate. This callback method executes in a separate thread, and is called by the system after the BeginAccept method returns.

Within the callback method, call the AsyncState method of the asyncResult parameter to obtain the Socket on which the connection attempt is being made. After obtaining the Socket, you can call the EndAccept method to successfully complete the connection attempt. The buffer parameter of this overload contains the data that was received in the call to BeginAccept and the bytesTransferred parameter contains the number of bytes that were transferred in the call.

The EndAccept method blocks until a connection is pending in the incoming connection queue. The EndAccept method accepts the incoming connection and returns a new Socket that can be used to send data to and receive data from the remote host.


If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation in the MSDN library for a detailed description of the error.


This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing in the .NET Framework.

The following code example uses BeginAccept to create and connect a socket and accept the initial 10 bytes of data. The callback delegate calls EndAccept to end the asynchronous request. The number of bytes transmitted and the data are returned in the buffer and bytesTransferred parameters of this method and are displayed on the console.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 2.0
Return to top