TcpListener.AcceptSocketAsync Method

.NET Framework 4.6 and 4.5

Accepts a pending connection request as an asynchronous operation.

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

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public Task<Socket> AcceptSocketAsync()

Return Value

Type: System.Threading.Tasks.Task<Socket>
Returns Task<TResult>
The task object representing the asynchronous operation. The Result property on the task object returns a Socket used to send and receive data.


The listener has not been started with a call to Start.

This operation will not block. The returned Task<TResult> object will complete after the socket connection has been accepted.

The Socket returned in Task<TResult> is initialized with the IP address and port number of the remote host. You can use any of the Send and Receive methods available in the Socket class to communicate with the remote host. When you are finished using the Socket, be sure to call its Close method. If your application is relatively simple, consider using the AcceptTcpClient method rather than the AcceptSocketAsync method. TcpClient provides you with simple methods for sending and receiving data over a network in blocking synchronous mode.


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


The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: ExternalThreading. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

.NET Framework

Supported in: 4.6, 4.5
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft