Socket.ReceiveMessageFromAsync Methode

Definitie

Overloads

Name Description
ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Bron:
Socket.cs
Bron:
Socket.cs
Bron:
Socket.cs
Bron:
Socket.cs
Bron:
Socket.cs

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

public:
 bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (e As SocketAsyncEventArgs) As Boolean

Parameters

e
SocketAsyncEventArgs

Het SocketAsyncEventArgs object dat moet worden gebruikt voor deze asynchrone socketbewerking.

Retouren

true als de I/O-bewerking in behandeling is. De Completed gebeurtenis voor de e parameter wordt gegenereerd na voltooiing van de bewerking.

false als de I/O-bewerking synchroon is voltooid. In dit geval wordt de Completed gebeurtenis voor de e parameter niet gegenereerd en kan het e object dat als parameter wordt doorgegeven, direct worden onderzocht nadat de methodeaanroep terugkeert om het resultaat van de bewerking op te halen.

Uitzonderingen

De RemoteEndPoint waarde kan niet null zijn.

Er is een fout opgetreden bij het openen van de socket.

Opmerkingen

De ReceiveMessageFromAsync methode wordt voornamelijk gebruikt voor het ontvangen van berichtgegevens op een verbindingsloze socket. Het lokale adres van de socket moet bekend zijn. Deze methode kan alleen worden gebruikt met datagram en raw sockets. De socket moet worden geïnitialiseerd met het sockettype dat is ingesteld op Dgram of Raw voordat u deze methode aanroept. Dit kan worden gedaan wanneer de socket wordt samengesteld met behulp van Socket.

De beller moet de SocketAsyncEventArgs.RemoteEndPoint eigenschap instellen op een EndPoint van hetzelfde type als het eindpunt van de externe host. De eigenschap wordt bijgewerkt bij geslaagde ontvangst naar het werkelijke externe eindpunt.

De volgende eigenschappen en gebeurtenissen op het System.Net.Sockets.SocketAsyncEventArgs object zijn vereist om deze methode aan te roepen:

De aanroeper kan de SocketAsyncEventArgs.UserToken eigenschap instellen op een gewenst gebruikersstatusobject voordat de ReceiveMessageFromAsync methode wordt aangeroepen, zodat de gegevens kunnen worden opgehaald in de callback-methode. Als de callback meer informatie nodig heeft dan één object, kan er een kleine klasse worden gemaakt om de andere vereiste statusgegevens als leden te bewaren.

Voor berichtgeoriënteerde sockets wordt een binnenkomend bericht in de buffer geplaatst tot de totale grootte van de buffer. De SocketAsyncEventArgs.Count en SocketAsyncEventArgs.Offset eigenschappen bepalen waar in de buffer de gegevens worden geplaatst en de hoeveelheid gegevens.

Met ReceiveMessageFromAsync de methode wordt de PacketInformation socket-optie automatisch ingesteld op true de eerste keer dat deze wordt aangeroepen voor een bepaalde Socket. Het IPPacketInformation object is echter alleen geldig voor pakketten die op de lokale computer aankomen nadat de socketoptie is ingesteld. Als een socket pakketten wordt verzonden tussen wanneer de socket is gebonden aan een lokaal eindpunt (expliciet door de methode of impliciet door een van de BindConnect, ConnectAsyncof SendToSendToAsync methoden) en de eerste aanroep naar de ReceiveMessageFromAsync methode, resulteert aanroepen naar ReceiveMessageFromAsync methode in ongeldige IPPacketInformation objecten voor deze pakketten.

Om ervoor te zorgen dat alle IPPacketInformation objecten geldig zijn, moet een toepassing de PacketInformation socketoptietrue instellen op voordat deze is gebonden aan een lokaal eindpunt met behulp van de SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) methode.

Een toepassing kan de resulterende IPPacketInformation objecten onderzoeken als deze moet weten of het datagram is verzonden met behulp van een unicast-, multicast- of broadcastadres.

Zie ook

Van toepassing op

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parameters

buffer
ArraySegment<Byte>

De buffer voor de ontvangen gegevens.

remoteEndPoint
EndPoint

Een eindpunt van hetzelfde type als het eindpunt van de externe host.

Retouren

Een asynchrone taak die is voltooid met een SocketReceiveMessageFromResult met het aantal ontvangen bytes en aanvullende informatie over de verzendende host.

Uitzonderingen

Het Socket object is gesloten.

remoteEndPoint is null.

U moet de Bind-methode aanroepen voordat u deze bewerking uitvoert.

Van toepassing op

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parameters

buffer
ArraySegment<Byte>

De buffer voor de ontvangen gegevens.

socketFlags
SocketFlags

Een bitsgewijze combinatie van SocketFlags-waarden die worden gebruikt bij het ontvangen van de gegevens.

remoteEndPoint
EndPoint

Een eindpunt van hetzelfde type als het eindpunt van de externe host.

Retouren

Een asynchrone taak die is voltooid met een SocketReceiveMessageFromResult met het aantal ontvangen bytes en aanvullende informatie over de verzendende host.

Uitzonderingen

Het Socket object is gesloten.

remoteEndPoint is null.

U moet de Bind-methode aanroepen voordat u deze bewerking uitvoert.

Van toepassing op

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parameters

buffer
Memory<Byte>

De buffer voor de ontvangen gegevens.

remoteEndPoint
EndPoint

Een eindpunt van hetzelfde type als het eindpunt van de externe host.

cancellationToken
CancellationToken

Een annuleringstoken dat kan worden gebruikt om de asynchrone bewerking te signaleren, moet worden geannuleerd.

Retouren

Een asynchrone taak die is voltooid met een SocketReceiveMessageFromResult met het aantal ontvangen bytes en aanvullende informatie over de verzendende host.

Uitzonderingen

Het Socket object is gesloten.

remoteEndPoint is null.

U moet de Bind-methode aanroepen voordat u deze bewerking uitvoert.

Het annuleringstoken is geannuleerd. Deze uitzondering wordt opgeslagen in de geretourneerde taak.

Van toepassing op

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs
Bron:
Socket.Tasks.cs

Ontvangt gegevens en retourneert aanvullende informatie over de afzender van het bericht.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parameters

buffer
Memory<Byte>

De buffer voor de ontvangen gegevens.

socketFlags
SocketFlags

Een bitsgewijze combinatie van SocketFlags-waarden die worden gebruikt bij het ontvangen van de gegevens.

remoteEndPoint
EndPoint

Een eindpunt van hetzelfde type als het eindpunt van de externe host.

cancellationToken
CancellationToken

Een annuleringstoken dat kan worden gebruikt om de asynchrone bewerking te signaleren, moet worden geannuleerd.

Retouren

Een asynchrone taak die is voltooid met een SocketReceiveMessageFromResult met het aantal ontvangen bytes en aanvullende informatie over de verzendende host.

Uitzonderingen

Het Socket object is gesloten.

remoteEndPoint is null.

U moet de Bind-methode aanroepen voordat u deze bewerking uitvoert.

Het annuleringstoken is geannuleerd. Deze uitzondering wordt opgeslagen in de geretourneerde taak.

Van toepassing op