Socket.BeginReceiveMessageFrom 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 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
- 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
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.
De Socket is gesloten.
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.