Socket.BeginAccept Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comienza una operación asincrónica para aceptar un intento de conexión entrante.
Sobrecargas
BeginAccept(AsyncCallback, Object) |
Comienza una operación asincrónica para aceptar un intento de conexión entrante. |
BeginAccept(Int32, AsyncCallback, Object) |
Comienza una operación asincrónica para aceptar un intento de conexión entrante y recibe el primer bloque de datos enviado por la aplicación cliente. |
BeginAccept(Socket, Int32, AsyncCallback, Object) |
Comienza una operación asincrónica para aceptar un intento de conexión entrante desde un socket específico y recibe el primer bloque de datos enviado por la aplicación cliente. |
BeginAccept(AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Comienza una operación asincrónica para aceptar un intento de conexión entrante.
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
Parámetros
- callback
- AsyncCallback
Delegado AsyncCallback.
- state
- Object
Objeto que contiene la información de estado para esta solicitud.
Devoluciones
IAsyncResult que hace referencia a la creación asincrónica de Socket.
Excepciones
El objeto Socket se ha cerrado.
El socket receptor no realiza escuchas de conexiones. Debe llamar a Bind(EndPoint) y a Listen(Int32) antes de llamar a BeginAccept(AsyncCallback, Object).
o bien
El socket aceptado se encuentra enlazado.
receiveSize
es menor que 0.
Solo .NET Framework y .NET 5 y versiones anteriores: se produjo un error al intentar acceder al socket.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin*
y End*
) para el nuevo desarrollo. En su lugar, use los Task
equivalentes basados en .
Los protocolos orientados a la conexión pueden usar el BeginAccept método para empezar a aceptar intentos de conexión entrantes. Antes de llamar al BeginAccept método , debe llamar al Listen método para escuchar y poner en cola las solicitudes de conexión entrantes.
Puede pasar una devolución de llamada que se AsyncCallback implemente en BeginAccept para recibir una notificación sobre la finalización de la operación de aceptación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, es posible que la devolución de llamada se ejecute en línea durante la llamada a BeginAccept. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá true
en para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de IAsyncResult para obtener el objeto de estado pasado al BeginAccept método .
La BeginAccept operación debe completarse llamando al EndAccept método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndAccept bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Para cancelar una llamada pendiente al BeginAccept método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la devolución de llamada proporcionada al BeginAccept método . Una llamada posterior al EndAccept método iniciará ( ObjectDisposedException antes de .NET 7) o ( SocketException en .NET 7 y versiones posteriores) para indicar que se ha cancelado la operación.
Nota
Puede usar la RemoteEndPoint propiedad del devuelto Socket para identificar la dirección de red y el número de puerto del host remoto.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.
Nota
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.
Consulte también
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Ejemplo de sockets de cliente asincrónicos
- Ejemplo de sockets de servidor asincrónicos
Se aplica a
BeginAccept(Int32, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Comienza una operación asincrónica para aceptar un intento de conexión entrante y recibe el primer bloque de datos enviado por la aplicación cliente.
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
Parámetros
- receiveSize
- Int32
Número de bytes que se han de aceptar del remitente.
- callback
- AsyncCallback
Delegado AsyncCallback.
- state
- Object
Objeto que contiene la información de estado para esta solicitud.
Devoluciones
IAsyncResult que hace referencia a la creación asincrónica de Socket.
Excepciones
El objeto Socket se ha cerrado.
El socket receptor no realiza escuchas de conexiones. Debe llamar a Bind(EndPoint) y a Listen(Int32) antes de llamar a BeginAccept(AsyncCallback, Object).
o bien
El socket aceptado se encuentra enlazado.
receiveSize
es menor que 0.
Solo .NET Framework y .NET 5 y versiones anteriores: se produjo un error al intentar acceder al socket.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin*
y End*
) para el nuevo desarrollo. En su lugar, use los Task
equivalentes basados en .
Los protocolos orientados a la conexión pueden usar el BeginAccept método para empezar a aceptar intentos de conexión entrantes. Antes de llamar al BeginAccept método , debe llamar al Listen método para escuchar y poner en cola las solicitudes de conexión entrantes.
Puede pasar una devolución de llamada que se AsyncCallback implemente en BeginAccept para recibir una notificación sobre la finalización de la operación de aceptación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, es posible que la devolución de llamada se ejecute en línea durante la llamada a BeginAccept. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá true
en para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de IAsyncResult para obtener el objeto de estado pasado al BeginAccept método .
La BeginAccept operación debe completarse llamando al EndAccept método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndAccept bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Para cancelar una llamada pendiente al BeginAccept método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la devolución de llamada proporcionada al BeginAccept método . Una llamada posterior al EndAccept método iniciará ( ObjectDisposedException antes de .NET 7) o ( SocketException en .NET 7 y versiones posteriores) para indicar que se ha cancelado la operación.
Nota
Puede usar la RemoteEndPoint propiedad del devuelto Socket para identificar la dirección de red y el número de puerto del host remoto.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.
Nota
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.
Consulte también
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Ejemplo de sockets de cliente asincrónicos
- Ejemplo de sockets de servidor asincrónicos
Se aplica a
BeginAccept(Socket, Int32, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Comienza una operación asincrónica para aceptar un intento de conexión entrante desde un socket específico y recibe el primer bloque de datos enviado por la aplicación cliente.
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
Parámetros
- receiveSize
- Int32
Número máximo de bytes que se va a recibir.
- callback
- AsyncCallback
Delegado AsyncCallback.
- state
- Object
Objeto que contiene la información de estado para esta solicitud.
Devoluciones
Objeto IAsyncResult que hace referencia a la creación asincrónica del objeto Socket.
Excepciones
El objeto Socket se ha cerrado.
El socket receptor no realiza escuchas de conexiones. Debe llamar a Bind(EndPoint) y a Listen(Int32) antes de llamar a BeginAccept(AsyncCallback, Object).
o bien
El socket aceptado se encuentra enlazado.
receiveSize
es menor que 0.
Solo .NET Framework y .NET 5 y versiones anteriores: se produjo un error al intentar acceder al socket.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin*
y End*
) para el nuevo desarrollo. En su lugar, use los Task
equivalentes basados en .
Los protocolos orientados a la conexión pueden usar el BeginAccept método para empezar a aceptar intentos de conexión entrantes. La operación de aceptación resultante se representa mediante el devuelto IAsyncResult aunque pueda completarse sincrónicamente. Antes de llamar al BeginAccept método , debe llamar al Listen método para escuchar y poner en cola las solicitudes de conexión entrantes.
Puede pasar una devolución de llamada que se implemente AsyncCallbackBeginAccept en para recibir una notificación sobre la finalización de la operación de aceptación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, es posible que la devolución de llamada se ejecute en línea durante la llamada a BeginAccept. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true
para indicar que el método se completó de forma sincrónica. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginAccept método .
La BeginAccept operación debe completarse llamando al EndAccept método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndAccept bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Para cancelar una llamada pendiente al BeginAccept método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la devolución de llamada proporcionada al BeginAccept método . Una llamada posterior al EndAccept método iniciará ( ObjectDisposedException antes de .NET 7) o un SocketException (en .NET 7+) para indicar que se ha cancelado la operación.
Nota
Puede usar la RemoteEndPoint propiedad del devuelto Socket para identificar la dirección de red y el número de puerto del host remoto.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Nota
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.
Consulte también
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Ejemplo de sockets de cliente asincrónicos
- Ejemplo de sockets de servidor asincrónicos