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)

Source:
Socket.cs
Source:
Socket.cs
Source:
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 il nuovo sviluppo. Usare invece gli Taskequivalenti basati su base.

I protocolli orientati alla connessione possono usare il metodo per avviare l'accettazione BeginAccept di tentativi di connessione in ingresso. L'operazione di accettazione risultante è rappresentata dall'oggetto restituito IAsyncResult anche se può completare in modo sincrono. Prima di chiamare il metodo, è necessario chiamare il BeginAcceptListen metodo per ascoltare 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à sul restituito verrà impostata IAsyncResult su per true indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto state 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 un'operazione asincrona è in corso, viene chiamato il BeginAccept callback fornito al metodo. Una chiamata successiva al EndAccept metodo genererà un ObjectDisposedException oggetto (prima di .NET 7) o un SocketException (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

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

Nota

Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode 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 (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 particolare contesto (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)

Source:
Socket.cs
Source:
Socket.cs
Source:
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 il nuovo sviluppo. Usare invece gli Taskequivalenti basati su base.

Se si usa un protocollo orientato alla connessione, il BeginConnect metodo avvia una richiesta asincrona per una connessione all'endpoit remoteEP specificata dal 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à sul restituito verrà impostata IAsyncResult su per true indicare che il metodo è stato completato in modo sincrono. Utilizzare la AsyncState proprietà dell'oggetto IAsyncResult per ottenere l'oggetto state 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 comunicare con un host remoto. Se si chiama BeginConnect, tutti i datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno ignorati. Se si vuole impostare l'host remoto predefinito su un indirizzo di trasmissione, è necessario prima chiamare SetSocketOption e impostare Broadcast su true. Se non è possibile, BeginConnect genererà un SocketExceptionoggetto .

Se si usa un protocollo orientato alla connessione e non si chiama Bind prima di chiamare BeginConnect, il provider di servizi sottostante assegna il numero di porta e l'indirizzo di rete locale più appropriato. Se si usa un protocollo senza connessione, il provider di servizi non assegna 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 un'operazione asincrona è in corso, viene chiamato il BeginConnect callback fornito al metodo. Una chiamata successiva al EndConnect metodo genererà un ObjectDisposedException oggetto (prima di .NET 7) o un SocketException (in .NET 7+) per indicare che l'operazione è stata annullata.

Nota

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

Nota

Se questo socket è stato disconnesso in precedenza, BeginConnect deve essere chiamato 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)

Source:
Socket.cs
Source:
Socket.cs
Source:
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)

Source:
Socket.cs
Source:
Socket.cs
Source:
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 deve essere chiamato 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 (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 particolare contesto (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