Socket.ConnectAsync Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia una richiesta asincrona per una connessione a un host remoto.
Overload
| Nome | Descrizione |
|---|---|
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm) | |
| ConnectAsync(String, Int32, CancellationToken) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs) |
Avvia una richiesta asincrona per una connessione a un host remoto. |
| ConnectAsync(IPAddress[], Int32, CancellationToken) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(IPAddress, Int32, CancellationToken) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(String, Int32) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(IPAddress[], Int32) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(IPAddress, Int32) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(EndPoint, CancellationToken) |
Stabilisce una connessione a un host remoto. |
| ConnectAsync(SocketAsyncEventArgs) |
Avvia una richiesta asincrona per una connessione a un host remoto. |
| ConnectAsync(EndPoint) |
Stabilisce una connessione a un host remoto. |
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)
public:
static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e, System::Net::Sockets::ConnectAlgorithm connectAlgorithm);
public static bool ConnectAsync(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e, System.Net.Sockets.ConnectAlgorithm connectAlgorithm);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs * System.Net.Sockets.ConnectAlgorithm -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs, connectAlgorithm As ConnectAlgorithm) As Boolean
Parametri
- socketType
- SocketType
- protocolType
- ProtocolType
- connectAlgorithm
- ConnectAlgorithm
Restituisce
Si applica a
ConnectAsync(String, Int32, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::String ^ host, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(string host, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : string * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (host As String, port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametri
- host
- String
Nome host dell'host remoto a cui connettersi.
- port
- Int32
Porta nell'host remoto a cui connettersi.
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il host parametro non può essere Null.
L'oggetto Socket è in ascolto.
Il socket non si trova nelle InterNetwork famiglie o InterNetworkV6 .
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(String, Int32).
Si applica a
ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Avvia una richiesta asincrona per una connessione a un host remoto.
public:
static bool ConnectAsync(System::Net::Sockets::SocketType socketType, System::Net::Sockets::ProtocolType protocolType, System::Net::Sockets::SocketAsyncEventArgs ^ e);
public static bool ConnectAsync(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType, System.Net.Sockets.SocketAsyncEventArgs e);
static member ConnectAsync : System.Net.Sockets.SocketType * System.Net.Sockets.ProtocolType * System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Shared Function ConnectAsync (socketType As SocketType, protocolType As ProtocolType, e As SocketAsyncEventArgs) As Boolean
Parametri
- socketType
- SocketType
Uno dei SocketType valori.
- protocolType
- ProtocolType
Uno dei ProtocolType valori.
Oggetto SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.
Restituisce
true se l'operazione di I/O è in sospeso. L'evento Completed sul e parametro verrà generato al termine dell'operazione.
false se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento Completed sul e parametro non verrà generato e l'oggetto e passato come parametro può essere esaminato immediatamente dopo il ritorno della chiamata al metodo per recuperare il risultato dell'operazione.
Eccezioni
Un argomento non è valido. Questa eccezione si verifica se vengono specificati più buffer, la BufferList proprietà non è Null.
Il e parametro non può essere Null e non RemoteEndPoint può essere null.
è Socket in ascolto o un'operazione socket già in corso utilizzando l'oggetto SocketAsyncEventArgs specificato nel e parametro .
Si è verificato un errore durante il tentativo di accesso al socket.
L'endpoint locale e l'oggetto RemoteEndPoint non sono la stessa famiglia di indirizzi.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Se si usa un protocollo orientato alla connessione, il metodo M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) avvia una richiesta asincrona per una connessione all'host remoto. Se si usa un protocollo senza connessione, ConnectAsync stabilisce un host remoto predefinito specificato dai socketType parametri e protocolType .
Per ricevere una notifica di completamento, è necessario creare un metodo di callback che implementa il delegato SocketAsyncEventArgs EventHandler<e collegare il callback all'eventoSocketAsyncEventArgs.Completed.>
Il chiamante deve impostare la SocketAsyncEventArgs.RemoteEndPoint proprietà sull'oggetto IPEndPoint dell'host remoto a cui connettersi.
Il chiamante può impostare la SocketAsyncEventArgs.UserToken proprietà su qualsiasi oggetto stato utente desiderato prima di chiamare il ConnectAsync metodo, in modo che le informazioni saranno recuperabili nel metodo di callback. Se il callback richiede più informazioni di un singolo oggetto, è possibile creare una classe di piccole dimensioni per contenere le altre informazioni sullo stato necessarie come membri.
Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario chiamare ConnectAsync prima di inviare e ricevere dati. È possibile usare SendToAsync e ReceiveFromAsync per comunicare con un host remoto. Se si chiama ConnectAsync, tutti i datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno eliminati. Se si vuole modificare l'host remoto predefinito, chiamare di nuovo il ConnectAsync metodo con l'endpoint desiderato.
Se si desidera impostare l'host remoto predefinito su un indirizzo di trasmissione, è prima necessario chiamare SetSocketOption e impostare Broadcast su true. Se questa operazione non viene eseguita, il ConnectAsync metodo genererà un'eccezione SocketException.
Sono necessarie le proprietà e gli eventi seguenti sull'oggetto System.Net.Sockets.SocketAsyncEventArgs :
Facoltativamente, è possibile specificare un buffer che verrà inviato in modo atomico sul socket dopo che il ConnectAsync metodo ha esito positivo. In questo caso, la SocketAsyncEventArgs.Buffer proprietà deve essere impostata sul buffer contenente i dati da inviare e la SocketAsyncEventArgs.Count proprietà deve essere impostata sul numero di byte di dati da inviare dal buffer. Una volta stabilita una connessione, questo buffer di dati viene inviato.
Se si usa un protocollo orientato alla connessione e non si chiama prima di chiamare BindConnectAsync, il provider di servizi sottostante assegnerà l'indirizzo di rete e il numero di porta più appropriati.
Se si usa un protocollo senza connessione, il provider di servizi non assegnerà un indirizzo IP di rete locale e un numero di porta finché non si chiamano i SendAsync metodi o ReceiveAsync .
Il ConnectAsync metodo genera un'eccezione NotSupportedException se la famiglia di indirizzi di Socket e SocketAsyncEventArgs.RemoteEndPoint non è la stessa famiglia di indirizzi.
Annotazioni
Se si riceve un oggetto SocketException quando si chiama questo metodo, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Si applica a
ConnectAsync(IPAddress[], Int32, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::ValueTask ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress[] addresses, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress[] * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (addresses As IPAddress(), port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametri
- addresses
- IPAddress[]
Elenco di IPAddresses per l'host remoto che verrà usato per tentare di connettersi all'host remoto.
- port
- Int32
Porta nell'host remoto a cui connettersi.
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il addresses parametro non può essere Null.
Il addresses parametro non può essere una matrice vuota.
L'oggetto Socket è in ascolto.
Il socket non si trova nelle InterNetwork famiglie o InterNetworkV6 .
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(IPAddress[], Int32).
Si applica a
ConnectAsync(IPAddress, Int32, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::Net::IPAddress ^ address, int port, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.IPAddress address, int port, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.IPAddress * int * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (address As IPAddress, port As Integer, cancellationToken As CancellationToken) As ValueTask
Parametri
- address
- IPAddress
Indirizzo IPAddress dell'host remoto a cui connettersi.
- port
- Int32
Porta nell'host remoto a cui connettersi.
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il address parametro non può essere Null.
L'oggetto Socket è in ascolto.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(IPAddress, Int32).
Si applica a
ConnectAsync(String, Int32)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::String ^ host, int port);
public System.Threading.Tasks.Task ConnectAsync(string host, int port);
member this.ConnectAsync : string * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (host As String, port As Integer) As Task
Parametri
- host
- String
Nome host dell'host remoto a cui connettersi.
- port
- Int32
Porta nell'host remoto a cui connettersi.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il host parametro non può essere Null.
L'oggetto Socket è in ascolto.
Il socket non si trova nelle InterNetwork famiglie o InterNetworkV6 .
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(String, Int32).
Si applica a
ConnectAsync(IPAddress[], Int32)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::Task ^ ConnectAsync(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress[] addresses, int port);
member this.ConnectAsync : System.Net.IPAddress[] * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (addresses As IPAddress(), port As Integer) As Task
Parametri
- addresses
- IPAddress[]
Elenco di IPAddresses per l'host remoto che verrà usato per tentare di connettersi all'host remoto.
- port
- Int32
Porta nell'host remoto a cui connettersi.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il addresses parametro non può essere Null.
Il addresses parametro non può essere una matrice vuota.
L'oggetto Socket è in ascolto.
Il socket non si trova nelle InterNetwork famiglie o InterNetworkV6 .
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(IPAddress[], Int32).
Si applica a
ConnectAsync(IPAddress, Int32)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::Net::IPAddress ^ address, int port);
public System.Threading.Tasks.Task ConnectAsync(System.Net.IPAddress address, int port);
member this.ConnectAsync : System.Net.IPAddress * int -> System.Threading.Tasks.Task
Public Function ConnectAsync (address As IPAddress, port As Integer) As Task
Parametri
- address
- IPAddress
Indirizzo IPAddress dell'host remoto a cui connettersi.
- port
- Int32
Porta nell'host remoto a cui connettersi.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il address parametro non può essere Null.
L'oggetto Socket è in ascolto.
Il socket non si trova nelle InterNetwork famiglie o InterNetworkV6 .
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(IPAddress, Int32).
Si applica a
ConnectAsync(EndPoint, CancellationToken)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::ValueTask ConnectAsync(System::Net::EndPoint ^ remoteEP, System::Threading::CancellationToken cancellationToken);
public System.Threading.Tasks.ValueTask ConnectAsync(System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken);
member this.ConnectAsync : System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask
Public Function ConnectAsync (remoteEP As EndPoint, cancellationToken As CancellationToken) As ValueTask
Parametri
- remoteEP
- EndPoint
Endpoint a cui connettersi.
- cancellationToken
- CancellationToken
Token di annullamento che può essere usato per annullare l'operazione asincrona.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il remoteEP parametro non può essere Null.
L'oggetto Socket è in ascolto.
Si è verificato un errore durante il tentativo di accesso al socket.
L'endpoint locale e il remoteEP parametro non sono la stessa famiglia di indirizzi.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(EndPoint).
Si applica a
ConnectAsync(SocketAsyncEventArgs)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Avvia una richiesta asincrona per una connessione a un host remoto.
public:
bool ConnectAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ConnectAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ConnectAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ConnectAsync (e As SocketAsyncEventArgs) As Boolean
Parametri
Oggetto SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.
Restituisce
true se l'operazione di I/O è in sospeso. L'evento Completed sul e parametro verrà generato al termine dell'operazione.
false se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento Completed sul e parametro non verrà generato e l'oggetto e passato come parametro può essere esaminato immediatamente dopo il ritorno della chiamata al metodo per recuperare il risultato dell'operazione.
Eccezioni
Un argomento non è valido. Questa eccezione si verifica se vengono specificati più buffer, la BufferList proprietà non è Null.
Il e parametro non può essere Null e non RemoteEndPoint può essere null.
è Socket in ascolto o un'operazione socket già in corso utilizzando l'oggetto SocketAsyncEventArgs specificato nel e parametro .
Si è verificato un errore durante il tentativo di accesso al socket.
L'endpoint locale e l'oggetto RemoteEndPoint non sono la stessa famiglia di indirizzi.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Se si usa un protocollo orientato alla connessione, il ConnectAsync metodo avvia una richiesta asincrona per una connessione all'host remoto. Se si usa un protocollo senza connessione, ConnectAsync stabilisce un host remoto predefinito.
Per ricevere una notifica di completamento, è necessario creare un metodo di callback che implementa il delegato SocketAsyncEventArgs EventHandler<e collegare il callback all'eventoSocketAsyncEventArgs.Completed.>
Il chiamante deve impostare la SocketAsyncEventArgs.RemoteEndPoint proprietà sull'oggetto IPEndPoint dell'host remoto a cui connettersi.
Il chiamante può impostare la SocketAsyncEventArgs.UserToken proprietà su qualsiasi oggetto stato utente desiderato prima di chiamare il ConnectAsync metodo, in modo che le informazioni saranno recuperabili nel metodo di callback. Se il callback richiede più informazioni di un singolo oggetto, è possibile creare una classe di piccole dimensioni per contenere le altre informazioni sullo stato necessarie come membri.
Se si usa un protocollo senza connessione, ad esempio UDP, non è necessario chiamare ConnectAsync prima di inviare e ricevere dati. È possibile usare SendToAsync e ReceiveFromAsync per comunicare con un host remoto. Se si chiama ConnectAsync, tutti i datagrammi che arrivano da un indirizzo diverso dal valore predefinito specificato verranno eliminati. Se si vuole modificare l'host remoto predefinito, chiamare di nuovo il ConnectAsync metodo con l'endpoint desiderato.
Se si desidera impostare l'host remoto predefinito su un indirizzo di trasmissione, è prima necessario chiamare SetSocketOption e impostare Broadcast su true. Se questa operazione non viene eseguita, il ConnectAsync metodo genererà un'eccezione SocketException.
Sono necessarie le proprietà e gli eventi seguenti sull'oggetto System.Net.Sockets.SocketAsyncEventArgs :
Facoltativamente, è possibile specificare un buffer che verrà inviato in modo atomico sul socket dopo che il ConnectAsync metodo ha esito positivo. In questo caso, la SocketAsyncEventArgs.Buffer proprietà deve essere impostata sul buffer contenente i dati da inviare e la SocketAsyncEventArgs.Count proprietà deve essere impostata sul numero di byte di dati da inviare dal buffer. Una volta stabilita una connessione, questo buffer di dati viene inviato.
Se si usa un protocollo orientato alla connessione e non si chiama prima di chiamare BindConnectAsync, il provider di servizi sottostante assegnerà l'indirizzo di rete e il numero di porta più appropriati.
Se si usa un protocollo senza connessione, il provider di servizi non assegnerà un indirizzo IP di rete locale e un numero di porta finché non si chiamano i SendAsync metodi o ReceiveAsync .
Il ConnectAsync metodo genera un'eccezione NotSupportedException se la famiglia di indirizzi di Socket e SocketAsyncEventArgs.RemoteEndPoint non è la stessa famiglia di indirizzi.
Annotazioni
Se si riceve un oggetto SocketException quando si chiama questo metodo, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Vedi anche
Si applica a
ConnectAsync(EndPoint)
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
- Origine:
- Socket.Tasks.cs
Stabilisce una connessione a un host remoto.
public:
System::Threading::Tasks::Task ^ ConnectAsync(System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task ConnectAsync(System.Net.EndPoint remoteEP);
member this.ConnectAsync : System.Net.EndPoint -> System.Threading.Tasks.Task
Public Function ConnectAsync (remoteEP As EndPoint) As Task
Parametri
- remoteEP
- EndPoint
Endpoint a cui connettersi.
Restituisce
Attività asincrona che viene completata quando viene stabilita la connessione.
Eccezioni
Il remoteEP parametro non può essere Null.
L'oggetto Socket è in ascolto.
Si è verificato un errore durante il tentativo di accesso al socket.
L'endpoint locale e il remoteEP parametro non sono la stessa famiglia di indirizzi.
L'oggetto Socket è stato chiuso.
Un chiamante superiore nello stack di chiamate non dispone dell'autorizzazione per l'operazione richiesta.
Commenti
Questo metodo archivia nell'attività che restituisce tutte le eccezioni non di utilizzo che la controparte sincrona del metodo può generare. Se un'eccezione viene archiviata nell'attività restituita, tale eccezione verrà generata quando l'attività è attesa. Le eccezioni di utilizzo, ad esempio ArgumentException, vengono comunque generate in modo sincrono. Per le eccezioni archiviate, vedere le eccezioni generate da Connect(EndPoint).