Socket.ReceiveMessageFrom Methode

Definition

Überlädt

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen socketFlags und speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert die Endpunkt- und Paketinformationen.

public:
 int ReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : byte[] * int * int * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parameter

buffer
Byte[]

Ein Array des Typs Byte, bei dem es sich um den Speicherort für empfangene Daten handelt.

offset
Int32

Die Position im buffer-Parameter, an der die empfangenen Daten gespeichert werden sollen.

size
Int32

Die Anzahl der zu empfangenden Bytes.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

remoteEP
EndPoint

Ein Verweis auf einen EndPoint vom gleichen Typ wie der Endpunkt des Remotehosts, der bei erfolgreichem Empfang aktualisiert werden soll.

ipPacketInformation
IPPacketInformation

Ein IPPacketInformation-Objekt, das Adress- und Schnittstelleninformationen enthält.

Gibt zurück

Die Anzahl der empfangenen Bytes.

Ausnahmen

buffer ist null.

- oder -

remoteEP ist null.

offset ist kleiner als 0.

- oder -

offset ist größer als die Länge von buffer.

- oder -

size ist kleiner als 0.

- oder -

size ist größer als die Länge von buffer minus dem Wert des offset-Parameters.

socketFlags ist keine gültige Kombination von Werten.

- oder -

Die LocalEndPoint-Eigenschaft wurde nicht festgelegt.

- oder -

.NET Framework wird mit einem AMD 64 Bit-Prozessor ausgeführt.

- oder -

Fehler beim Versuch, auf den Socket zuzugreifen.

Der Socket wurde geschlossen.

Hinweise

Die ReceiveMessageFrom -Methode liest Daten in den buffer Parameter, gibt die Anzahl der erfolgreich gelesenen Bytes zurück und erfasst den Remotehostendpunkt, von dem die Daten gesendet wurden, sowie Informationen zum empfangenen Paket.

Die ReceiveMessageFrom -Methode wird hauptsächlich verwendet, um Nachrichtendaten auf einem verbindungslosen Socket zu empfangen. Die lokale Adresse des Sockets muss bekannt sein. Diese Methode kann nur mit Datagrammen und Rohsockets verwendet werden. Der Socket muss mit dem Sockettyp initialisiert werden, der auf Dgram oder Raw festgelegt ist, bevor diese Methode aufgerufen wird. Dies kann erfolgen, wenn der Socket mit Socketerstellt wird.

Bei nachrichtenorientierten Sockets wird eine eingehende Nachricht bis zur im Parameter angegebenen Gesamtgröße in buffer den size Parameter eingefügt. Der offset Parameter bestimmt, wo sich die buffer Daten befinden. Die tatsächliche Datenmenge, die in der platziert wird, buffer wird von der ReceiveMessageFrom -Methode zurückgegeben.

Die ReceiveMessageFrom -Methode legt die PacketInformation Socketoption automatisch auf true das erste Mal fest, wenn sie für eine bestimmte Socketaufgerufen wird. Das zurückgegebene IPPacketInformation Objekt ist jedoch nur für Pakete gültig, die auf dem lokalen Computer eingehen, nachdem die Socketoption festgelegt wurde. Wenn ein Socket Pakete gesendet wird, wenn er an einen lokalen Endpunkt gebunden ist (explizit durch die Bind -Methode oder implizit durch eine der ConnectMethoden , ConnectAsync, SendTooderSendToAsync) und seinem ersten Aufruf der -Methode, geben Aufrufe ReceiveMessageFrom der ReceiveMessageFrom -Methode ungültige IPPacketInformation Objekte für diese Pakete zurück.

Um sicherzustellen, dass alle IPPacketInformation Objekte gültig sind, sollte eine Anwendung die PacketInformation Socketoption auf true festlegen, bevor sie mithilfe der SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) -Methode an einen lokalen Endpunkt gebunden wird.

Eine Anwendung kann den ipPacketInformation Parameter untersuchen, wenn sie wissen muss, ob das Datagramm mit einer Unicast-, Multicast- oder Broadcastadresse gesendet wurde.

Hinweis

Die AddressFamily der EndPoint in ReceiveFrom verwendeten muss mit dem AddressFamily des EndPoint in SendToübereinstimmen.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.

Weitere Informationen

Gilt für:

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen socketFlags und speichert die Endpunkt- und Paketinformationen.

public:
 int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parameter

buffer
Span<Byte>

Ein Span<T> vom Typ Byte , der der Speicherort für empfangene Daten ist.

socketFlags
SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.

remoteEP
EndPoint

Ein Verweis auf einen EndPoint vom gleichen Typ wie der Endpunkt des Remotehosts, der bei erfolgreichem Empfang aktualisiert werden soll.

ipPacketInformation
IPPacketInformation

Ein IPPacketInformation-Objekt, das Adress- und Schnittstelleninformationen enthält.

Gibt zurück

Die Anzahl der empfangenen Bytes.

Ausnahmen

Das Socket-Objekt wurde geschlossen.

Der EndPoint remoteEP ist null.

Das Socket-Objekt ist nicht im Blockierungsmodus und kann diesen synchronen Aufruf nicht annehmen. Sie müssen die Bind-Methode aufrufen, bevor Sie diesen Vorgang ausführen.

Gilt für: