Compartir por


Socket.BeginConnect Método

Definición

Comienza una solicitud asincrónica para una conexión de host remoto.

Sobrecargas

Nombre Description
BeginConnect(EndPoint, AsyncCallback, Object)

Comienza una solicitud asincrónica para una conexión de host remoto.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante un IPAddress número de puerto y .

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante una IPAddress matriz y un número de puerto.

BeginConnect(String, Int32, AsyncCallback, Object)

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante un nombre de host y un número de puerto.

BeginConnect(EndPoint, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Comienza una solicitud asincrónica para una conexión de host remoto.

public:
 IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

remoteEP
EndPoint

que EndPoint representa el host remoto.

callback
AsyncCallback

Delegado AsyncCallback .

state
Object

Objeto que contiene información de estado para esta solicitud.

Devoluciones

que IAsyncResult hace referencia a la conexión asincrónica.

Excepciones

remoteEP es null.

.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket.

Un autor de llamada superior en la pila de llamadas no tiene permiso para la operación solicitada.

Se Socket ha colocado en un estado de escucha llamando a Listen(Int32)o una operación asincrónica ya está en curso.

Comentarios

Importante

Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes 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 AsyncCallbackBeginAccept implemente 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ó sincrónicamente. 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 BeginAccept devolución de llamada proporcionada al método . Una llamada posterior al EndAccept método iniciará ObjectDisposedException (antes de .NET 7) o una 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 al habilitar 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

Se aplica a

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante un IPAddress número de puerto y .

public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

address
IPAddress

IPAddress del host remoto.

port
Int32

Número de puerto del host remoto.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación de conexión.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de conexión. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

que IAsyncResult hace referencia a la conexión asincrónica.

Excepciones

address es null.

.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket.

El Socket no está en la familia de sockets.

El número de puerto no es válido.

La longitud de address es cero.

Se Socket ha colocado en un estado de escucha llamando a Listen(Int32)o una operación asincrónica ya está en curso.

Comentarios

Importante

Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .

Si usa un protocolo orientado a la conexión, el BeginConnect método inicia una solicitud asincrónica para una conexión al endpoit especificado por el remoteEP parámetro . Si usa un protocolo sin conexión, BeginConnect establece un host remoto predeterminado.

Puede pasar una devolución de llamada que se AsyncCallbackBeginConnect implemente en para recibir una notificación sobre la finalización de la operación de conexió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 BeginConnect. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginConnect método .

La BeginConnect operación debe completarse llamando al EndConnect método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndConnect bloqueará el subproceso que realiza la llamada hasta que se complete la operación.

Si usa un protocolo sin conexión como UDP, no tiene que llamar BeginConnect antes de enviar y recibir datos. Puede usar BeginSendTo y BeginReceiveFrom comunicarse con un host remoto. Si llama a BeginConnect, se descartarán los datagramas que lleguen desde una dirección distinta del valor predeterminado especificado. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero debe llamar SetSocketOption a y establecer Broadcast en true. Si no puede, BeginConnect iniciará una SocketExceptionexcepción .

Si usa un protocolo orientado a la conexión y no llama Bind a antes de llamar a BeginConnect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si usa un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que llame al BeginSend método o ReceiveFrom . Si desea cambiar el host remoto predeterminado, vuelva a llamar al BeginConnect método con el punto de conexión deseado.

Para cancelar una llamada pendiente al BeginConnect método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la BeginConnect devolución de llamada proporcionada al método . Una llamada posterior al EndConnect método iniciará ObjectDisposedException (antes de .NET 7) o una SocketException (en .NET 7+) para indicar que se ha cancelado la operación.

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.

Nota:

Si este socket se ha desconectado anteriormente, BeginConnect se debe llamar a en un subproceso que no se cerrará hasta que se complete la operación. Se trata de una limitación del proveedor subyacente.

Nota:

Este miembro genera información de seguimiento al habilitar 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

Se aplica a

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante una IPAddress matriz y un número de puerto.

public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

addresses
IPAddress[]

Al menos un IPAddress, designando el host remoto.

port
Int32

Número de puerto del host remoto.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación de conexión.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de conexión. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

que IAsyncResult hace referencia a las conexiones asincrónicas.

Excepciones

addresses es null.

.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket.

Este método es válido para sockets que usan InterNetwork o InterNetworkV6.

El número de puerto no es válido.

La longitud de addresses es cero.

Se Socket ha colocado en un estado de escucha llamando a Listen(Int32)o una operación asincrónica ya está en curso.

Comentarios

Importante

Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .

Si usa un protocolo orientado a la conexión, el BeginConnect método inicia una solicitud asincrónica para una conexión al endpoit especificado por el remoteEP parámetro . Si usa un protocolo sin conexión, BeginConnect establece un host remoto predeterminado.

Puede pasar una devolución de llamada que se AsyncCallbackBeginConnect implemente en para recibir una notificación sobre la finalización de la operación de conexió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 BeginConnect. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginConnect método .

La BeginConnect operación debe completarse llamando al EndConnect método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndConnect bloqueará el subproceso que realiza la llamada hasta que se complete la operación.

Si usa un protocolo sin conexión como UDP, no tiene que llamar BeginConnect antes de enviar y recibir datos. Puede usar BeginSendTo y BeginReceiveFrom comunicarse con un host remoto. Si llama a BeginConnect, se descartarán los datagramas que lleguen desde una dirección distinta del valor predeterminado especificado. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero debe llamar SetSocketOption a y establecer Broadcast en true. Si no puede, BeginConnect iniciará una SocketExceptionexcepción .

Si usa un protocolo orientado a la conexión y no llama Bind a antes de llamar a BeginConnect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si usa un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que llame al BeginSend método o ReceiveFrom . Si desea cambiar el host remoto predeterminado, vuelva a llamar al BeginConnect método con el punto de conexión deseado.

Para cancelar una llamada pendiente al BeginConnect método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la BeginConnect devolución de llamada proporcionada al método . Una llamada posterior al EndConnect método iniciará ObjectDisposedException (antes de .NET 7) o una SocketException (en .NET 7+) para indicar que se ha cancelado la operación.

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.

Nota:

Si este socket se ha desconectado anteriormente, BeginConnect se debe llamar a en un subproceso que no se cerrará hasta que se complete la operación. Se trata de una limitación del proveedor subyacente.

Nota:

Este miembro genera información de seguimiento al habilitar 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

Se aplica a

BeginConnect(String, Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Comienza una solicitud asincrónica para una conexión de host remoto. El host se especifica mediante un nombre de host y un número de puerto.

public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(string host, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(string host, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

host
String

Nombre del host remoto.

port
Int32

Número de puerto del host remoto.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación de conexión.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de conexión. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

que IAsyncResult hace referencia a la conexión asincrónica.

Excepciones

host es null.

Este método es válido para sockets de las InterNetwork familias o InterNetworkV6 .

El número de puerto no es válido.

Se Socket ha colocado en un estado de escucha llamando a Listen(Int32)o una operación asincrónica ya está en curso.

Comentarios

Importante

Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .

Si usa un protocolo orientado a la conexión, el BeginConnect método inicia una solicitud asincrónica para una conexión al endpoit especificado por el remoteEP parámetro . Si usa un protocolo sin conexión, BeginConnect establece un host remoto predeterminado.

Puede pasar una devolución de llamada que se AsyncCallbackBeginConnect implemente en para recibir una notificación sobre la finalización de la operación de conexió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 BeginConnect. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginConnect método .

La BeginConnect operación debe completarse llamando al EndConnect método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndConnect bloqueará el subproceso que realiza la llamada hasta que se complete la operación.

Si usa un protocolo sin conexión como UDP, no tiene que llamar BeginConnect antes de enviar y recibir datos. Puede usar BeginSendTo y BeginReceiveFrom comunicarse con un host remoto. Si llama a BeginConnect, se descartarán los datagramas que lleguen desde una dirección distinta del valor predeterminado especificado. Si desea establecer el host remoto predeterminado en una dirección de difusión, primero debe llamar SetSocketOption a y establecer Broadcast en true. Si no puede, BeginConnect iniciará una SocketExceptionexcepción .

Si usa un protocolo orientado a la conexión y no llama Bind a antes de llamar a BeginConnect, el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si usa un protocolo sin conexión, el proveedor de servicios no asignará una dirección de red local ni un número de puerto hasta que llame al BeginSend método o ReceiveFrom . Si desea cambiar el host remoto predeterminado, vuelva a llamar al BeginConnect método con el punto de conexión deseado.

Para cancelar una llamada pendiente al BeginConnect método , cierre .Socket Cuando se llama al Close método mientras una operación asincrónica está en curso, se llama a la BeginConnect devolución de llamada proporcionada al método . Una llamada posterior al EndConnect método iniciará ObjectDisposedException (antes de .NET 7) o una SocketException (en .NET 7+) para indicar que se ha cancelado la operación.

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.

Nota:

Si este socket se ha desconectado anteriormente, BeginConnect se debe llamar a en un subproceso que no se cerrará hasta que se complete la operación. Se trata de una limitación del proveedor subyacente.

Nota:

Este miembro genera información de seguimiento al habilitar 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

Se aplica a