Socket.ConnectAsync Metod

Definition

Påbörjar en asynkron begäran om en anslutning till en fjärrvärd.

Överlagringar

Name Description
ConnectAsync(SocketAsyncEventArgs)

Påbörjar en asynkron begäran om en anslutning till en fjärrvärd.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Påbörjar en asynkron begäran om en anslutning till en fjärrvärd.

ConnectAsync(SocketAsyncEventArgs)

Påbörjar en asynkron begäran om en anslutning till en fjärrvärd.

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

Parametrar

e
SocketAsyncEventArgs

Objektet SocketAsyncEventArgs som ska användas för den här asynkrona socketåtgärden.

Returer

true om I/O-åtgärden väntar. Händelsen Completed på parametern e utlöses när åtgärden har slutförts.

false om I/O-åtgärden slutfördes synkront. I det här fallet Completed utlöses inte händelsen för parametern e och objektet e som skickas som en parameter kan undersökas omedelbart efter att metodanropet returneras för att hämta resultatet av åtgärden.

Undantag

Ett argument är ogiltigt. Det här undantaget inträffar om flera buffertar anges, egenskapen BufferList är inte null.

Parametern e får inte vara null och RemoteEndPoint får inte vara null.

Åtgärden Socket lyssnar eller så pågår redan en socketåtgärd med hjälp av objektet SocketAsyncEventArgs som anges i parametern e .

Ett fel uppstod vid försök att komma åt socketen.

Den lokala slutpunkten och RemoteEndPoint är inte samma adressfamilj.

En anropare högre i anropsstacken har inte behörighet för den begärda åtgärden.

Kommentarer

Om du använder ett anslutningsorienterat protokoll ConnectAsync startar metoden en asynkron begäran om en anslutning till fjärrvärden. Om du använder ett anslutningslöst protokoll ConnectAsync upprättar du en standardvärd för fjärranslutningen.

För att meddelas om slutförandet måste du skapa en motringningsmetod som implementerar EventHandler<SocketAsyncEventArgs-ombudet> och kopplar återanropet SocketAsyncEventArgs.Completed till händelsen.

Anroparen måste ange SocketAsyncEventArgs.RemoteEndPoint egenskapen till IPEndPoint den fjärrvärd som ska anslutas till.

Anroparen kan ange SocketAsyncEventArgs.UserToken egenskapen till valfritt användartillståndsobjekt som önskas innan metoden anropas ConnectAsync , så att informationen kan hämtas i motringningsmetoden. Om återanropet behöver mer information än ett enskilt objekt kan en liten klass skapas för att lagra den andra nödvändiga tillståndsinformationen som medlemmar.

Om du använder ett anslutningslöst protokoll, till exempel UDP, behöver du inte anropa ConnectAsync innan du skickar och tar emot data. Du kan använda SendToAsync och ReceiveFromAsync för att kommunicera med en fjärrvärd. Om du anropar ConnectAsyncignoreras alla datagram som kommer från en annan adress än den angivna standardinställningen. Om du vill ändra standardvärden för fjärranslutning anropar ConnectAsync du metoden igen med önskad slutpunkt.

Om du vill ange standardvärden för fjärrvärden till en sändningsadress måste du först anropa SetSocketOption och ställa in Broadcast till true. Om detta inte ConnectAsync görs genererar metoden en SocketException.

Följande egenskaper och händelser för System.Net.Sockets.SocketAsyncEventArgs objektet krävs:

Du kan också ange en buffert som ska skickas atomiskt på socketen ConnectAsync när metoden har slutförts. I det här fallet SocketAsyncEventArgs.Buffer måste egenskapen anges till bufferten som innehåller de data som ska skickas och SocketAsyncEventArgs.Count egenskapen måste anges till antalet byte av data som ska skickas från bufferten. När en anslutning har upprättats skickas den här databufferten.

Om du använder ett anslutningsorienterat protokoll och inte anropar Bind innan du anropar ConnectAsynctilldelar den underliggande tjänstleverantören den lämpligaste lokala nätverksadressen och portnumret.

Om du använder ett anslutningslöst protokoll tilldelar tjänsteleverantören inte en lokal nätverks-IP-adress och portnummer förrän du anropar SendAsync metoderna eller ReceiveAsync .

Metoden ConnectAsync utlöser NotSupportedException om adressfamiljen för Socket och SocketAsyncEventArgs.RemoteEndPoint inte är samma adressfamilj.

Note

Om du får en SocketException när du anropar den SocketException.ErrorCode här metoden använder du egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

Se även

Gäller för

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Påbörjar en asynkron begäran om en anslutning till en fjärrvärd.

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

Parametrar

socketType
SocketType

Ett av SocketType värdena.

protocolType
ProtocolType

Ett av ProtocolType värdena.

e
SocketAsyncEventArgs

Objektet SocketAsyncEventArgs som ska användas för den här asynkrona socketåtgärden.

Returer

true om I/O-åtgärden väntar. Händelsen Completed på parametern e utlöses när åtgärden har slutförts.

false om I/O-åtgärden slutfördes synkront. I det här fallet Completed utlöses inte händelsen för parametern e och objektet e som skickas som en parameter kan undersökas omedelbart efter att metodanropet returneras för att hämta resultatet av åtgärden.

Undantag

Ett argument är ogiltigt. Det här undantaget inträffar om flera buffertar anges, egenskapen BufferList är inte null.

Parametern e får inte vara null och RemoteEndPoint får inte vara null.

Åtgärden Socket lyssnar eller så pågår redan en socketåtgärd med hjälp av objektet SocketAsyncEventArgs som anges i parametern e .

Ett fel uppstod vid försök att komma åt socketen.

Den lokala slutpunkten och RemoteEndPoint är inte samma adressfamilj.

En anropare högre i anropsstacken har inte behörighet för den begärda åtgärden.

Kommentarer

Om du använder ett anslutningsorienterat protokoll startar metoden M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs) en asynkron begäran om en anslutning till fjärrvärden. Om du använder ett anslutningslöst protokoll ConnectAsync upprättar en standardvärd som anges av parametrarna socketType och protocolType .

För att meddelas om slutförandet måste du skapa en motringningsmetod som implementerar EventHandler<SocketAsyncEventArgs-ombudet> och kopplar återanropet SocketAsyncEventArgs.Completed till händelsen.

Anroparen måste ange SocketAsyncEventArgs.RemoteEndPoint egenskapen till IPEndPoint den fjärrvärd som ska anslutas till.

Anroparen kan ange SocketAsyncEventArgs.UserToken egenskapen till valfritt användartillståndsobjekt som önskas innan metoden anropas ConnectAsync , så att informationen kan hämtas i motringningsmetoden. Om återanropet behöver mer information än ett enskilt objekt kan en liten klass skapas för att lagra den andra nödvändiga tillståndsinformationen som medlemmar.

Om du använder ett anslutningslöst protokoll, till exempel UDP, behöver du inte anropa ConnectAsync innan du skickar och tar emot data. Du kan använda SendToAsync och ReceiveFromAsync för att kommunicera med en fjärrvärd. Om du anropar ConnectAsyncignoreras alla datagram som kommer från en annan adress än den angivna standardinställningen. Om du vill ändra standardvärden för fjärranslutning anropar ConnectAsync du metoden igen med önskad slutpunkt.

Om du vill ange standardvärden för fjärrvärden till en sändningsadress måste du först anropa SetSocketOption och ställa in Broadcast till true. Om detta inte ConnectAsync görs genererar metoden en SocketException.

Följande egenskaper och händelser för System.Net.Sockets.SocketAsyncEventArgs objektet krävs:

Du kan också ange en buffert som ska skickas atomiskt på socketen ConnectAsync när metoden har slutförts. I det här fallet SocketAsyncEventArgs.Buffer måste egenskapen anges till bufferten som innehåller de data som ska skickas och SocketAsyncEventArgs.Count egenskapen måste anges till antalet byte av data som ska skickas från bufferten. När en anslutning har upprättats skickas den här databufferten.

Om du använder ett anslutningsorienterat protokoll och inte anropar Bind innan du anropar ConnectAsynctilldelar den underliggande tjänstleverantören den lämpligaste lokala nätverksadressen och portnumret.

Om du använder ett anslutningslöst protokoll tilldelar tjänsteleverantören inte en lokal nätverks-IP-adress och portnummer förrän du anropar SendAsync metoderna eller ReceiveAsync .

Metoden ConnectAsync utlöser NotSupportedException om adressfamiljen för Socket och SocketAsyncEventArgs.RemoteEndPoint inte är samma adressfamilj.

Note

Om du får en SocketException när du anropar den SocketException.ErrorCode här metoden använder du egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.

Gäller för