TcpListener.EndAcceptTcpClient Method
Asynchronously accepts an incoming connection attempt and creates a new TcpClient to handle remote host communication.
Namespace: System.Net.Sockets
Assembly: System (in System.dll)
Parameters
- asyncResult
- Type: System.IAsyncResult
An IAsyncResult returned by a call to the BeginAcceptTcpClient method.
Return Value
Type: System.Net.Sockets.TcpClientA TcpClient.
The TcpClient used to send and receive data.
This method blocks until the operation is complete. To perform this operation synchronously, use the AcceptTcpClient method.
Note |
|---|
You can call the RemoteEndPoint property of the underlying socket (Client) to identify the remote host's network address and port number. |
Note |
|---|
If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation in the MSDN library at http://msdn.microsoft.com/library/ for a detailed description of the error. |
Note |
|---|
This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing. |
The following code example demonstrates the use of the BeginAcceptTcpClient method to create and connect a socket. The callback delegate calls the EndAcceptTcpClient method to end the asynchronous request.
// Thread signal. public static ManualResetEvent tcpClientConnected = new ManualResetEvent(false); // Accept one client connection asynchronously. public static void DoBeginAcceptTcpClient(TcpListener listener) { // Set the event to nonsignaled state. tcpClientConnected.Reset(); // Start to listen for connections from a client. Console.WriteLine("Waiting for a connection..."); // Accept the connection. // BeginAcceptSocket() creates the accepted socket. listener.BeginAcceptTcpClient( new AsyncCallback(DoAcceptTcpClientCallback), listener); // Wait until a connection is made and processed before // continuing. tcpClientConnected.WaitOne(); } // Process the client connection. public static void DoAcceptTcpClientCallback(IAsyncResult ar) { // Get the listener that handles the client request. TcpListener listener = (TcpListener) ar.AsyncState; // End the operation and display the received data on // the console. TcpClient client = listener.EndAcceptTcpClient(ar); // Process the connection here. (Add the client to a // server table, read data, etc.) Console.WriteLine("Client connected completed"); // Signal the calling thread to continue. tcpClientConnected.Set(); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note