Condividi tramite


Socket.ConnectAsync Metodo

Definizione

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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.

e
SocketAsyncEventArgs

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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.

port è minore di MinPort.

oppure

port è maggiore di MaxPort.

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

e
SocketAsyncEventArgs

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).

Si applica a