Socket.BeginAccept Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Begins an asynchronous operation to accept an incoming connection attempt.
Overloads
BeginAccept(AsyncCallback, Object) |
Begins an asynchronous operation to accept an incoming connection attempt. |
BeginAccept(Int32, AsyncCallback, Object) |
Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application. |
BeginAccept(Socket, Int32, AsyncCallback, Object) |
Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application. |
BeginAccept(AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Begins an asynchronous operation to accept an incoming connection attempt.
public:
IAsyncResult ^ BeginAccept(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (AsyncCallback callback, object state);
member this.BeginAccept : AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (callback As AsyncCallback, state As Object) As IAsyncResult
Parameters
- callback
- AsyncCallback
The AsyncCallback delegate.
- state
- Object
An object that contains state information for this request.
Returns
An IAsyncResult that references the asynchronous Socket creation.
Exceptions
The Socket object has been closed.
The accepting socket is not listening for connections. You must call Bind(EndPoint) and Listen(Int32) before calling BeginAccept(AsyncCallback, Object).
-or-
The accepted socket is bound.
receiveSize
is less than 0.
.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.
Remarks
Important
This is a compatibility API. We don't recommend using the APM (Begin*
and End*
) methods for new development. Instead, use the Task
-based equivalents.
Connection-oriented protocols can use the BeginAccept method to start accepting incoming connection attempts. Before calling the BeginAccept method, you must call the Listen method to listen for and queue incoming connection requests.
You can pass a callback that implements AsyncCallback to BeginAccept in order to get notified about the completion of the accept operation. Note that if the underlying network stack completes the operation synchronously, the callback might be executed inline, during the call to BeginAccept. In this case, the CompletedSynchronously property on the returned IAsyncResult will be set to true
to indicate that the method completed synchronously. Use the AsyncState property of the IAsyncResult to obtain the state object passed to the BeginAccept method.
The BeginAccept operation must be completed by calling the EndAccept method. Typically, the method is invoked by the provided AsyncCallback delegate. EndAccept will block the calling thread until the operation is completed.
To cancel a pending call to the BeginAccept method, close the Socket. When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginAccept method is called. A subsequent call to the EndAccept method will throw an ObjectDisposedException (before .NET 7) or a SocketException (on .NET 7+) to indicate that the operation has been cancelled.
Note
You can use the RemoteEndPoint property of the returned Socket 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.
Note
This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing in .NET Framework.
Note
The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.
See also
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Asynchronous Client Socket Example
- Asynchronous Server Socket Example
Applies to
BeginAccept(Int32, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application.
public:
IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parameters
- receiveSize
- Int32
The number of bytes to accept from the sender.
- callback
- AsyncCallback
The AsyncCallback delegate.
- state
- Object
An object that contains state information for this request.
Returns
An IAsyncResult that references the asynchronous Socket creation.
Exceptions
The Socket object has been closed.
The accepting socket is not listening for connections. You must call Bind(EndPoint) and Listen(Int32) before calling BeginAccept(AsyncCallback, Object).
-or-
The accepted socket is bound.
receiveSize
is less than 0.
.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.
Remarks
Important
This is a compatibility API. We don't recommend using the APM (Begin*
and End*
) methods for new development. Instead, use the Task
-based equivalents.
Connection-oriented protocols can use the BeginAccept method to start accepting incoming connection attempts. Before calling the BeginAccept method, you must call the Listen method to listen for and queue incoming connection requests.
You can pass a callback that implements AsyncCallback to BeginAccept in order to get notified about the completion of the accept operation. Note that if the underlying network stack completes the operation synchronously, the callback might be executed inline, during the call to BeginAccept. In this case, the CompletedSynchronously property on the returned IAsyncResult will be set to true
to indicate that the method completed synchronously. Use the AsyncState property of the IAsyncResult to obtain the state object passed to the BeginAccept method.
The BeginAccept operation must be completed by calling the EndAccept method. Typically, the method is invoked by the provided AsyncCallback delegate. EndAccept will block the calling thread until the operation is completed.
To cancel a pending call to the BeginAccept method, close the Socket. When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginAccept method is called. A subsequent call to the EndAccept method will throw an ObjectDisposedException (before .NET 7) or a SocketException (on .NET 7+) to indicate that the operation has been cancelled.
Note
You can use the RemoteEndPoint property of the returned Socket 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.
Note
This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing in .NET Framework.
Note
The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.
See also
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Asynchronous Client Socket Example
- Asynchronous Server Socket Example
Applies to
BeginAccept(Socket, Int32, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application.
public:
IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Parameters
- receiveSize
- Int32
The maximum number of bytes to receive.
- callback
- AsyncCallback
The AsyncCallback delegate.
- state
- Object
An object that contains state information for this request.
Returns
An IAsyncResult object that references the asynchronous Socket object creation.
Exceptions
The Socket object has been closed.
The accepting socket is not listening for connections. You must call Bind(EndPoint) and Listen(Int32) before calling BeginAccept(AsyncCallback, Object).
-or-
The accepted socket is bound.
receiveSize
is less than 0.
.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.
Remarks
Important
This is a compatibility API. We don't recommend using the APM (Begin*
and End*
) methods for new development. Instead, use the Task
-based equivalents.
Connection-oriented protocols can use the BeginAccept method to start accepting incoming connection attempts. The resulting accept operation is represented by the returned IAsyncResult even though it may complete synchronously. Before calling the BeginAccept method, you must call the Listen method to listen for and queue incoming connection requests.
You can pass a callback that implements AsyncCallback to BeginAccept in order to get notified about the completion of the accept operation. Note that if the underlying network stack completes the operation synchronously, the callback might be executed inline, during the call to BeginAccept. In this case, the CompletedSynchronously property on the returned IAsyncResult will be set to true
to indicate that the method completed synchronously. Use the AsyncState property of the IAsyncResult to obtain the state object passed to the BeginAccept method.
The BeginAccept operation must be completed by calling the EndAccept method. Typically, the method is invoked by the provided AsyncCallback delegate. EndAccept will block the calling thread until the operation is completed.
To cancel a pending call to the BeginAccept method, close the Socket. When the Close method is called while an asynchronous operation is in progress, the callback provided to the BeginAccept method is called. A subsequent call to the EndAccept method will throw an ObjectDisposedException (before .NET 7) or a SocketException (on .NET 7+) to indicate that the operation has been cancelled.
Note
You can use the RemoteEndPoint property of the returned Socket 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.
Note
This member outputs trace information when you enable network tracing in your application. For more information, see Network Tracing in .NET Framework.
Note
The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.
See also
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Asynchronous Client Socket Example
- Asynchronous Server Socket Example