Socket.BeginReceiveMessageFrom Methode

Definitie

Begint asynchroon het opgegeven aantal bytes aan gegevens te ontvangen op de opgegeven locatie van de gegevensbuffer, met behulp van de opgegeven SocketFlags, en slaat het eindpunt- en pakketgegevens op.

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parameters

buffer
Byte[]

Een matrix van het type Byte dat de opslaglocatie is voor de ontvangen gegevens.

offset
Int32

De op nul gebaseerde positie in de buffer parameter waarop de gegevens moeten worden opgeslagen.

size
Int32

Het aantal te ontvangen bytes.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de SocketFlags waarden.

remoteEP
EndPoint

Een verwijzing naar een EndPoint van hetzelfde type als het eindpunt van de externe host die moet worden bijgewerkt bij synchrone ontvangst.

callback
AsyncCallback

De AsyncCallback gedelegeerde.

state
Object

Een object met statusinformatie voor deze aanvraag.

Retouren

Een IAsyncResult die verwijst naar de asynchrone leesbewerking.

Uitzonderingen

buffer is null.

– of –

remoteEP is null.

alleen .NET Framework: er is een fout opgetreden bij het openen van de socket.

offset is kleiner dan 0.

– of –

offset is groter dan de lengte van buffer.

– of –

size is kleiner dan 0.

– of –

size is groter dan de lengte van buffer min de waarde van de offset parameter.

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

U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginReceiveMessageFrom om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginReceiveMessageFrom. 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 BeginReceiveMessageFrom methode.

De asynchrone BeginReceiveMessageFrom bewerking moet worden voltooid door de EndReceiveMessageFrom methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndReceiveMessageFrom blokkeert de aanroepende thread totdat de bewerking is voltooid.

Als u een in behandeling zijnde BeginReceiveMessageFrombewerking wilt annuleren, roept u de methode aan Close .

Met deze methode worden gegevens in de buffer parameter gelezen en wordt het eindpunt van de externe host vastgelegd waaruit de gegevens worden verzonden, evenals informatie over het ontvangen pakket. Raadpleeg EndReceiveMessageFromvoor meer informatie over het ophalen van dit eindpunt. Deze methode is het handigst als u asynchroon verbindingloze datagrammen van een onbekende host of meerdere hosts wilt ontvangen.

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.

Van toepassing op