Socket.BeginConnect Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Begint een asynchrone aanvraag voor een externe hostverbinding.
Overloads
| Name | Description |
|---|---|
| BeginConnect(EndPoint, AsyncCallback, Object) |
Begint een asynchrone aanvraag voor een externe hostverbinding. |
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een IPAddress en een poortnummer. |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een IPAddress matrix en een poortnummer. |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een hostnaam en een poortnummer. |
BeginConnect(EndPoint, AsyncCallback, Object)
Begint een asynchrone aanvraag voor een externe hostverbinding.
public:
IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::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
Parameters
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult die verwijst naar de asynchrone verbinding.
Uitzonderingen
remoteEP is null.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Een aanroeper hoger in de aanroepstack heeft geen machtiging voor de aangevraagde bewerking.
De Socket is in een luisterstatus geplaatst door aan te roepen Listen(Int32)of er wordt al een asynchrone bewerking uitgevoerd.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Verbindingsgeoriënteerde protocollen kunnen de BeginAccept methode gebruiken om binnenkomende verbindingspogingen te accepteren. De resulterende acceptbewerking wordt vertegenwoordigd door de geretourneerde IAsyncResult bewerking, ook al kan deze synchroon worden voltooid. Voordat u de BeginAccept methode aanroept, moet u de Listen methode aanroepen om te luisteren naar binnenkomende verbindingsaanvragen en deze in de wachtrij te plaatsen.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginAccept om een melding te ontvangen over de voltooiing van de acceptatiebewerking. Als de onderliggende netwerkstack de bewerking synchroon voltooit, kan de callback inline worden uitgevoerd, tijdens de aanroep naar BeginAccept. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginAccept methode.
De BeginAccept bewerking moet worden voltooid door de EndAccept methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de opgegeven AsyncCallback gemachtigde. EndAccept blokkeert de aanroepende thread totdat de bewerking is voltooid.
Als u een aanroep in behandeling naar de BeginAccept methode wilt annuleren, sluit u de Socket. Wanneer de Close methode wordt aangeroepen terwijl een asynchrone bewerking wordt uitgevoerd, wordt de callback aangeroepen die aan de BeginAccept methode wordt geleverd. Een volgende aanroep van de methode EndAccept genereert een ObjectDisposedException (vóór .NET 7) of een SocketException (op .NET 7+) om aan te geven dat de bewerking is geannuleerd.
Note
U kunt de RemoteEndPoint eigenschap van de geretourneerde Socket gebruiken om het netwerkadres en poortnummer van de externe host te identificeren.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginConnect(IPAddress, Int32, AsyncCallback, Object)
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een IPAddress en een poortnummer.
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);
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
Parameters
- port
- Int32
Het poortnummer van de externe host.
- requestCallback
- AsyncCallback
Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de verbindingsbewerking is voltooid.
- state
- Object
Een door de gebruiker gedefinieerd object met informatie over de verbindingsbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.
Retouren
Een IAsyncResult die verwijst naar de asynchrone verbinding.
Uitzonderingen
address is null.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
De Socket is niet in de socketfamilie.
Het poortnummer is ongeldig.
De lengte is address nul.
De Socket is in een luisterstatus geplaatst door aan te roepen Listen(Int32)of er wordt al een asynchrone bewerking uitgevoerd.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Als u een verbindingsgeoriënteerd protocol gebruikt, start de BeginConnect methode een asynchrone aanvraag voor een verbinding met de eindpoit die is opgegeven door de remoteEP parameter. Als u een protocol zonder verbinding gebruikt, BeginConnect maakt u een standaard externe host.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginConnect om een melding te ontvangen over de voltooiing van de verbindingsbewerking. Als de onderliggende netwerkstack de bewerking synchroon voltooit, kan de callback inline worden uitgevoerd, tijdens de aanroep naar BeginConnect. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginConnect methode.
De BeginConnect bewerking moet worden voltooid door de EndConnect methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de opgegeven AsyncCallback gemachtigde. EndConnect blokkeert de aanroepende thread totdat de bewerking is voltooid.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen BeginConnect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken BeginSendTo en BeginReceiveFrom communiceren met een externe host. Als u aanroept BeginConnect, worden gegevensgrammen die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, verwijderd. Als u uw standaard externe host wilt instellen op een broadcast-adres, moet u eerst bellen SetSocketOption en Broadcast instellen op true. Als je dat niet kunt, BeginConnect gooi dan een SocketException.
Als u een verbindingsgeoriënteerd protocol gebruikt en niet belt voordat u aanroept BindBeginConnect, wijst de onderliggende serviceprovider het meest geschikte lokale netwerkadres en poortnummer toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u de BeginSend of ReceiveFrom methode aanroept. Als u de standaard externe host wilt wijzigen, roept u de BeginConnect methode opnieuw aan met het gewenste eindpunt.
Als u een aanroep in behandeling naar de BeginConnect methode wilt annuleren, sluit u de Socket. Wanneer de Close methode wordt aangeroepen terwijl een asynchrone bewerking wordt uitgevoerd, wordt de callback aangeroepen die aan de BeginConnect methode wordt geleverd. Een volgende aanroep van de methode EndConnect genereert een ObjectDisposedException (vóór .NET 7) of een SocketException (op .NET 7+) om aan te geven dat de bewerking is geannuleerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Als deze socket eerder is losgekoppeld, BeginConnect moet deze worden aangeroepen op een thread die pas wordt afgesloten als de bewerking is voltooid. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een IPAddress matrix en een poortnummer.
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);
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
Parameters
- port
- Int32
Het poortnummer van de externe host.
- requestCallback
- AsyncCallback
Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de verbindingsbewerking is voltooid.
- state
- Object
Een door de gebruiker gedefinieerd object met informatie over de verbindingsbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.
Retouren
Een IAsyncResult die verwijst naar de asynchrone verbindingen.
Uitzonderingen
addresses is null.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
Deze methode is geldig voor sockets die gebruikmaken InterNetwork van of InterNetworkV6.
Het poortnummer is ongeldig.
De lengte is addresses nul.
De Socket is in een luisterstatus geplaatst door aan te roepen Listen(Int32)of er wordt al een asynchrone bewerking uitgevoerd.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Als u een verbindingsgeoriënteerd protocol gebruikt, start de BeginConnect methode een asynchrone aanvraag voor een verbinding met de eindpoit die is opgegeven door de remoteEP parameter. Als u een protocol zonder verbinding gebruikt, BeginConnect maakt u een standaard externe host.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginConnect om een melding te ontvangen over de voltooiing van de verbindingsbewerking. Als de onderliggende netwerkstack de bewerking synchroon voltooit, kan de callback inline worden uitgevoerd, tijdens de aanroep naar BeginConnect. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginConnect methode.
De BeginConnect bewerking moet worden voltooid door de EndConnect methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de opgegeven AsyncCallback gemachtigde. EndConnect blokkeert de aanroepende thread totdat de bewerking is voltooid.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen BeginConnect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken BeginSendTo en BeginReceiveFrom communiceren met een externe host. Als u aanroept BeginConnect, worden gegevensgrammen die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, verwijderd. Als u uw standaard externe host wilt instellen op een broadcast-adres, moet u eerst bellen SetSocketOption en Broadcast instellen op true. Als je dat niet kunt, BeginConnect gooi dan een SocketException.
Als u een verbindingsgeoriënteerd protocol gebruikt en niet belt voordat u aanroept BindBeginConnect, wijst de onderliggende serviceprovider het meest geschikte lokale netwerkadres en poortnummer toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u de BeginSend of ReceiveFrom methode aanroept. Als u de standaard externe host wilt wijzigen, roept u de BeginConnect methode opnieuw aan met het gewenste eindpunt.
Als u een aanroep in behandeling naar de BeginConnect methode wilt annuleren, sluit u de Socket. Wanneer de Close methode wordt aangeroepen terwijl een asynchrone bewerking wordt uitgevoerd, wordt de callback aangeroepen die aan de BeginConnect methode wordt geleverd. Een volgende aanroep van de methode EndConnect genereert een ObjectDisposedException (vóór .NET 7) of een SocketException (op .NET 7+) om aan te geven dat de bewerking is geannuleerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Als deze socket eerder is losgekoppeld, BeginConnect moet deze worden aangeroepen op een thread die pas wordt afgesloten als de bewerking is voltooid. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginConnect(String, Int32, AsyncCallback, Object)
Begint een asynchrone aanvraag voor een externe hostverbinding. De host wordt opgegeven door een hostnaam en een poortnummer.
public:
IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::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
Parameters
- host
- String
De naam van de externe host.
- port
- Int32
Het poortnummer van de externe host.
- requestCallback
- AsyncCallback
Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de verbindingsbewerking is voltooid.
- state
- Object
Een door de gebruiker gedefinieerd object met informatie over de verbindingsbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.
Retouren
Een IAsyncResult die verwijst naar de asynchrone verbinding.
Uitzonderingen
host is null.
De Socket is gesloten.
Deze methode is geldig voor sockets in de InterNetwork of InterNetworkV6 families.
Het poortnummer is ongeldig.
De Socket is in een luisterstatus geplaatst door aan te roepen Listen(Int32)of er wordt al een asynchrone bewerking uitgevoerd.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
Als u een verbindingsgeoriënteerd protocol gebruikt, start de BeginConnect methode een asynchrone aanvraag voor een verbinding met de eindpoit die is opgegeven door de remoteEP parameter. Als u een protocol zonder verbinding gebruikt, BeginConnect maakt u een standaard externe host.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginConnect om een melding te ontvangen over de voltooiing van de verbindingsbewerking. Als de onderliggende netwerkstack de bewerking synchroon voltooit, kan de callback inline worden uitgevoerd, tijdens de aanroep naar BeginConnect. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginConnect methode.
De BeginConnect bewerking moet worden voltooid door de EndConnect methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de opgegeven AsyncCallback gemachtigde. EndConnect blokkeert de aanroepende thread totdat de bewerking is voltooid.
Als u een verbindingsloos protocol zoals UDP gebruikt, hoeft u niet aan te roepen BeginConnect voordat u gegevens verzendt en ontvangt. U kunt deze gebruiken BeginSendTo en BeginReceiveFrom communiceren met een externe host. Als u aanroept BeginConnect, worden gegevensgrammen die afkomstig zijn van een ander adres dan de opgegeven standaardwaarde, verwijderd. Als u uw standaard externe host wilt instellen op een broadcast-adres, moet u eerst bellen SetSocketOption en Broadcast instellen op true. Als je dat niet kunt, BeginConnect gooi dan een SocketException.
Als u een verbindingsgeoriënteerd protocol gebruikt en niet belt voordat u aanroept BindBeginConnect, wijst de onderliggende serviceprovider het meest geschikte lokale netwerkadres en poortnummer toe. Als u een verbindingsloos protocol gebruikt, wijst de serviceprovider geen lokaal netwerkadres en poortnummer toe totdat u de BeginSend of ReceiveFrom methode aanroept. Als u de standaard externe host wilt wijzigen, roept u de BeginConnect methode opnieuw aan met het gewenste eindpunt.
Als u een aanroep in behandeling naar de BeginConnect methode wilt annuleren, sluit u de Socket. Wanneer de Close methode wordt aangeroepen terwijl een asynchrone bewerking wordt uitgevoerd, wordt de callback aangeroepen die aan de BeginConnect methode wordt geleverd. Een volgende aanroep van de methode EndConnect genereert een ObjectDisposedException (vóór .NET 7) of een SocketException (op .NET 7+) om aan te geven dat de bewerking is geannuleerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Als deze socket eerder is losgekoppeld, BeginConnect moet deze worden aangeroepen op een thread die pas wordt afgesloten als de bewerking is voltooid. Dit is een beperking van de onderliggende provider.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket