Condividi tramite


Socket.BeginConnect Metodo

Definizione

Avvia una richiesta asincrona di una connessione all'host remoto.

Overload

BeginConnect(EndPoint, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto. L'host remoto viene specificato da un IPAddress e da un numero di porta.

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

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da una matrice di IPAddress e un numero di porta.

BeginConnect(String, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da un nome host e da un numero di porta.

BeginConnect(EndPoint, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia una richiesta asincrona di una connessione all'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

Parametri

remoteEP
EndPoint

EndPoint che rappresenta l'host remoto.

callback
AsyncCallback

Delegato AsyncCallback.

state
Object

Oggetto che contiene informazioni sullo stato per questa richiesta.

Restituisce

Oggetto IAsyncResult che fa riferimento alla connessione asincrona.

Eccezioni

remoteEP è null.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

Un chiamante di livello superiore nello stack di chiamate non ha l'autorizzazione per l'operazione richiesta.

Socket è stato collocato in uno stato di ascolto mediante la chiamata di Listen(Int32) o è già in corso un'operazione asincrona.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

I protocolli orientati alla connessione possono usare il BeginAccept metodo per iniziare ad accettare i tentativi di connessione in ingresso. L'operazione di accettazione risultante è rappresentata dall'oggetto restituito IAsyncResult anche se può essere completato in modo sincrono. Prima di chiamare il BeginAccept metodo , è necessario chiamare il Listen metodo per restare in ascolto e accodare le richieste di connessione in ingresso.

È possibile passare un callback che implementa AsyncCallback a BeginAccept per ricevere una notifica sul completamento dell'operazione di accettazione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginAccept. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginAccept metodo .

L'operazione BeginAccept deve essere completata chiamando il EndAccept metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndAccept blocca il thread chiamante fino al completamento dell'operazione.

Per annullare una chiamata in sospeso al BeginAccept metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginAccept metodo . Una chiamata successiva al EndAccept metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

È possibile usare la RemoteEndPoint proprietà dell'oggetto restituito Socket per identificare l'indirizzo di rete e il numero di porta dell'host remoto.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia una richiesta asincrona di una connessione all'host remoto. L'host remoto viene specificato da un IPAddress e da un numero di porta.

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

Parametri

address
IPAddress

IPAddress dell'host remoto.

port
Int32

Numero di porta dell'host remoto.

requestCallback
AsyncCallback

Delegato AsyncCallback che fa riferimento al metodo da richiamare al completamento dell'operazione di connessione.

state
Object

Oggetto definito dall'utente che contiene informazioni sull'operazione di connessione. Questo oggetto viene passato al delegato requestCallback al completamento dell'operazione.

Restituisce

Oggetto IAsyncResult che fa riferimento alla connessione asincrona.

Eccezioni

address è null.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

L'oggetto Socket non è incluso nella famiglia di socket.

Il numero di porta non è valido.

La lunghezza di address è zero.

Socket è stato collocato in uno stato di ascolto mediante la chiamata di Listen(Int32) o è già in corso un'operazione asincrona.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

Se si usa un protocollo orientato alla connessione, il BeginConnect metodo avvia una richiesta asincrona per una connessione all'endpoint specificato dal remoteEP parametro . Se si usa un protocollo senza connessione, BeginConnect stabilisce un host remoto predefinito.

È possibile passare un callback che implementa AsyncCallback a BeginConnect per ricevere una notifica sul completamento dell'operazione di connessione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginConnect. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginConnect metodo .

L'operazione BeginConnect deve essere completata chiamando il EndConnect metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndConnect blocca il thread chiamante fino al completamento dell'operazione.

Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario chiamare BeginConnect prima di inviare e ricevere dati. È possibile usare BeginSendTo e BeginReceiveFrom per comunicare con un host remoto. Se si chiama BeginConnect, gli eventuali datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno eliminati. Se si desidera impostare l'host remoto predefinito su un indirizzo broadcast, è necessario chiamare SetSocketOption e impostare Broadcast su true. Se non è possibile, BeginConnect genererà un'eccezione SocketException.

Se si usa un protocollo orientato alla connessione e non si chiama prima di chiamare BindBeginConnect, il provider di servizi sottostante assegnerà l'indirizzo di rete locale e il numero di porta più appropriati. Se si usa un protocollo senza connessione, il provider di servizi non assegnerà un indirizzo di rete locale e un numero di porta finché non si chiama il BeginSend metodo o ReceiveFrom . Se si vuole modificare l'host remoto predefinito, chiamare di nuovo il BeginConnect metodo con l'endpoint desiderato.

Per annullare una chiamata in sospeso al BeginConnect metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginConnect metodo . Una chiamata successiva al EndConnect metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

Se questo socket è stato disconnesso in precedenza, BeginConnect è necessario chiamare su un thread che non verrà chiuso fino al completamento dell'operazione. Si tratta di una limitazione del provider sottostante.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a

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

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da una matrice di IPAddress e un numero di porta.

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

Parametri

addresses
IPAddress[]

Almeno un IPAddress, che specifica l'host remoto.

port
Int32

Numero di porta dell'host remoto.

requestCallback
AsyncCallback

Delegato AsyncCallback che fa riferimento al metodo da richiamare al completamento dell'operazione di connessione.

state
Object

Oggetto definito dall'utente che contiene informazioni sull'operazione di connessione. Questo oggetto viene passato al delegato requestCallback al completamento dell'operazione.

Restituisce

Oggetto IAsyncResult che fa riferimento alle connessioni asincrone.

Eccezioni

addresses è null.

Solo .NET Framework e .NET 5 e versioni precedenti: si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

Questo metodo è valido per i socket che utilizzano InterNetwork o InterNetworkV6.

Il numero di porta non è valido.

La lunghezza di address è zero.

Socket è stato collocato in uno stato di ascolto mediante la chiamata di Listen(Int32) o è già in corso un'operazione asincrona.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

Se si usa un protocollo orientato alla connessione, il BeginConnect metodo avvia una richiesta asincrona per una connessione all'endpoint specificato dal remoteEP parametro . Se si usa un protocollo senza connessione, BeginConnect stabilisce un host remoto predefinito.

È possibile passare un callback che implementa AsyncCallback a BeginConnect per ricevere una notifica sul completamento dell'operazione di connessione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginConnect. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginConnect metodo .

L'operazione BeginConnect deve essere completata chiamando il EndConnect metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndConnect blocca il thread chiamante fino al completamento dell'operazione.

Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario chiamare BeginConnect prima di inviare e ricevere dati. È possibile usare BeginSendTo e BeginReceiveFrom per comunicare con un host remoto. Se si chiama BeginConnect, gli eventuali datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno eliminati. Se si desidera impostare l'host remoto predefinito su un indirizzo broadcast, è necessario chiamare SetSocketOption e impostare Broadcast su true. Se non è possibile, BeginConnect genererà un'eccezione SocketException.

Se si usa un protocollo orientato alla connessione e non si chiama prima di chiamare BindBeginConnect, il provider di servizi sottostante assegnerà l'indirizzo di rete locale e il numero di porta più appropriati. Se si usa un protocollo senza connessione, il provider di servizi non assegnerà un indirizzo di rete locale e un numero di porta finché non si chiama il BeginSend metodo o ReceiveFrom . Se si vuole modificare l'host remoto predefinito, chiamare di nuovo il BeginConnect metodo con l'endpoint desiderato.

Per annullare una chiamata in sospeso al BeginConnect metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginConnect metodo . Una chiamata successiva al EndConnect metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

Se questo socket è stato disconnesso in precedenza, BeginConnect è necessario chiamare su un thread che non verrà chiuso fino al completamento dell'operazione. Si tratta di una limitazione del provider sottostante.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a

BeginConnect(String, Int32, AsyncCallback, Object)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Avvia una richiesta asincrona di una connessione all'host remoto. L'host viene specificato da un nome host e da un numero di porta.

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

Parametri

host
String

Il nome dell'host remoto.

port
Int32

Numero di porta dell'host remoto.

requestCallback
AsyncCallback

Delegato AsyncCallback che fa riferimento al metodo da richiamare al completamento dell'operazione di connessione.

state
Object

Oggetto definito dall'utente che contiene informazioni sull'operazione di connessione. Questo oggetto viene passato al delegato requestCallback al completamento dell'operazione.

Restituisce

Oggetto IAsyncResult che fa riferimento alla connessione asincrona.

Eccezioni

host è null.

L'oggetto Socket è stato chiuso.

Questo metodo è valido per i socket nelle famiglie InterNetwork o InterNetworkV6 .

Il numero di porta non è valido.

Socket è stato collocato in uno stato di ascolto mediante la chiamata di Listen(Int32) o è già in corso un'operazione asincrona.

Commenti

Importante

Si tratta di un'API di compatibilità. Non è consigliabile usare i metodi APM (Begin* e End*) per nuovi sviluppi. Usare invece gli Taskequivalenti basati su .

Se si usa un protocollo orientato alla connessione, il BeginConnect metodo avvia una richiesta asincrona per una connessione all'endpoint specificato dal remoteEP parametro . Se si usa un protocollo senza connessione, BeginConnect stabilisce un host remoto predefinito.

È possibile passare un callback che implementa AsyncCallback a BeginConnect per ricevere una notifica sul completamento dell'operazione di connessione. Si noti che se lo stack di rete sottostante completa l'operazione in modo sincrono, il callback potrebbe essere eseguito inline, durante la chiamata a BeginConnect. In questo caso, la CompletedSynchronously proprietà sull'oggetto restituito verrà impostata IAsyncResult su true per indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà di IAsyncResult per ottenere l'oggetto stato passato al BeginConnect metodo .

L'operazione BeginConnect deve essere completata chiamando il EndConnect metodo . In genere, il metodo viene richiamato dal delegato fornito AsyncCallback . EndConnect blocca il thread chiamante fino al completamento dell'operazione.

Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario chiamare BeginConnect prima di inviare e ricevere dati. È possibile usare BeginSendTo e BeginReceiveFrom per comunicare con un host remoto. Se si chiama BeginConnect, gli eventuali datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno eliminati. Se si desidera impostare l'host remoto predefinito su un indirizzo broadcast, è necessario chiamare SetSocketOption e impostare Broadcast su true. Se non è possibile, BeginConnect genererà un'eccezione SocketException.

Se si usa un protocollo orientato alla connessione e non si chiama prima di chiamare BindBeginConnect, il provider di servizi sottostante assegnerà l'indirizzo di rete locale e il numero di porta più appropriati. Se si usa un protocollo senza connessione, il provider di servizi non assegnerà un indirizzo di rete locale e un numero di porta finché non si chiama il BeginSend metodo o ReceiveFrom . Se si vuole modificare l'host remoto predefinito, chiamare di nuovo il BeginConnect metodo con l'endpoint desiderato.

Per annullare una chiamata in sospeso al BeginConnect metodo , chiudere .Socket Quando il Close metodo viene chiamato mentre è in corso un'operazione asincrona, viene chiamato il callback fornito al BeginConnect metodo . Una chiamata successiva al EndConnect metodo genererà ( ObjectDisposedException prima di .NET 7) o un SocketException oggetto (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico.

Nota

Se questo socket è stato disconnesso in precedenza, BeginConnect è necessario chiamare su un thread che non verrà chiuso fino al completamento dell'operazione. Si tratta di una limitazione del provider sottostante.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Nota

Il contesto di esecuzione (il contesto di sicurezza, l'utente rappresentato e il contesto chiamante) viene memorizzato nella cache per i metodi asincroni Socket . Dopo il primo uso di un contesto specifico (un metodo asincrono Socket specifico, un'istanza specifica Socket e un callback specifico), gli usi successivi di tale contesto vedranno un miglioramento delle prestazioni.

Vedi anche

Si applica a