Socket.ReceiveMessageFrom Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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 |
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
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
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Gilt für:
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
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
- 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
.
Die AddressFamily der EndPoint in ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) verwendeten muss mit der AddressFamily in EndPoint SendTo verwendeten übereinstimmen.
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.