Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Method

Definition

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert die Endpunkt- und Paketinformationen.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

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.An array of type Byte that is the storage location for received data.

offset
Int32 Int32 Int32 Int32

Die Position im buffer-Parameter, an der die empfangenen Daten gespeichert werden sollen.The position in the buffer parameter to store the received data.

size
Int32 Int32 Int32 Int32

Die Anzahl der zu empfangenden Bytes.The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

Eine bitweise Kombination der SocketFlags-Werte.A bitwise combination of the SocketFlags values.

remoteEP
EndPoint EndPoint EndPoint EndPoint

Ein als Verweis übergebener EndPoint, der den Remoteserver darstellt.An EndPoint, passed by reference, that represents the remote server.

ipPacketInformation
IPPacketInformation IPPacketInformation IPPacketInformation IPPacketInformation

Ein IPPacketInformation-Objekt, das Adress- und Schnittstelleninformationen enthält.An IPPacketInformation holding address and interface information.

Gibt zurück

Die Anzahl der empfangenen Bytes.The number of bytes received.

Ausnahmen

buffer ist null.buffer is null.

- oder –- or- remoteEP ist null.remoteEP is null.

offset ist kleiner als 0.offset is less than 0.

- oder --or- offset ist größer als die Länge von buffer.offset is greater than the length of buffer.

- oder --or- size ist kleiner als 0.size is less than 0.

- oder --or- size ist größer als die Länge von buffer minus dem Wert des offset-Parameters.size is greater than the length of the buffer minus the value of the offset parameter.

socketFlags ist keine gültige Kombination von Werten.socketFlags is not a valid combination of values.

- oder --or- Die LocalEndPoint-Eigenschaft wurde nicht festgelegt.The LocalEndPoint property was not set.

- oder --or- .NET Framework wird mit einem AMD 64 Bit-Prozessor ausgeführt.The .NET Framework is running on an AMD 64-bit processor.

- oder --or- Fehler beim Versuch, auf den Socket zuzugreifen.An error occurred when attempting to access the socket.

Das Betriebssystem ist Windows 2000 oder früher, für diese Methode ist jedoch Windows XP erforderlich.The operating system is Windows 2000 or earlier, and this method requires Windows XP.

Hinweise

Die ReceiveMessageFrom -Methode liest Daten in buffer den-Parameter, gibt die Anzahl der erfolgreich gelesenen Bytes zurück und erfasst den Remote Host Endpunkt, von dem die Daten gesendet wurden, sowie Informationen über das empfangene Paket.The ReceiveMessageFrom method reads data into the buffer parameter, returns the number of bytes successfully read, and captures the remote host endpoint from which the data was sent, as well as information about the received packet.

Die ReceiveMessageFrom -Methode wird hauptsächlich verwendet, um Nachrichten Daten in einem Verbindungs losen Socket zu empfangen.The ReceiveMessageFrom method is used primarily to receive message data on a connectionless socket. Die lokale Adresse des Sockets muss bekannt sein.The socket's local address must be known. Diese Methode kann nur mit Datagramm-und RAW-Sockets verwendet werden.This method can only be used with datagram and raw sockets. Der Socket muss mit dem auf oder Dgram Raw festgelegten Sockettyp initialisiert werden, bevor diese Methode aufgerufen wird.The socket must be initialized with the socket type set to Dgram or Raw before calling this method. Dies kann geschehen, wenn der Socket mithilfe Socketvon erstellt wird.This can be done when the socket is constructed using Socket.

Bei Nachrichten orientierten Sockets wird eine eingehende Nachricht bis zur Gesamtgröße buffer , die size im-Parameter angegeben ist, in den-Parameter eingefügt.For message-oriented sockets, an incoming message is placed into the buffer parameter up to the total size specified in the size parameter. Der offset -Parameter bestimmt, wo buffer die Daten abgelegt werden.The offset parameter determines where in the buffer the data is placed. Die tatsächliche Datenmenge, die in der buffer eingefügt wird, wird ReceiveMessageFrom von der-Methode zurückgegeben.The actual amount of data placed into the buffer is returned by the ReceiveMessageFrom method.

Die ReceiveMessageFrom Methode true Socketlegt die Socketoption beim ersten Aufrufen für einen angegebenen auf die automatische Methode fest. PacketInformationThe ReceiveMessageFrom method automatically method sets the PacketInformation socket option to true the first time it is called for a given Socket. Das zurückgegebene IPPacketInformation Objekt ist jedoch nur für Pakete gültig, die auf dem lokalen Computer eintreffen, nachdem die Socketoption festgelegt wurde.However, the returned IPPacketInformation object will only be valid for packets which arrive at the local computer after the socket option has been set. Wenn ein Socket Pakete sendet, die zwischen dem Binden an einen lokalen Endpunkt (explizit Bind durch die-Methode oder implizit durch eine Connectder-, ConnectAsync SendTo-,- SendToAsync oder-Methoden) und dem ersten- ReceiveMessageFrom Aufrufvorgang des -Methode, werden ReceiveMessageFrom bei Aufrufen der- IPPacketInformation Methode ungültige Objekte für diese Pakete zurückgegeben.If a socket is sent packets between when it is bound to a local endpoint (explicitly by the Bind method or implicitly by one of the Connect, ConnectAsync, SendTo, or SendToAsync methods) and its first call to the ReceiveMessageFrom method, calls to ReceiveMessageFrom method will return invalid IPPacketInformation objects for these packets.

Um sicherzustellen, IPPacketInformation dass alle Objekte gültig sind, sollte eine Anwendung PacketInformation die Socketoption auf true festlegen, bevor Sie mithilfe der SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) -Methode an einen lokalen Endpunkt gebunden wird.To ensure that all IPPacketInformation objects are valid, an application should set the PacketInformation socket option to true before it is bound to a local endpoint using the SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) method.

Eine Anwendung kann den Parameter ipPacketInformation untersuchen, wenn Sie wissen muss, ob das Datagramm mithilfe einer Unicast-, Multicast-oder Broadcast Adresse gesendet wurde.An application can examine the ipPacketInformation parameter if it needs to know if the datagram was sent using a unicast, multicast, or broadcast address.

Hinweis

Der AddressFamily AddressFamily des verwendeten in ReceiveFrom muss mit dem des in EndPoint derverwendetenidentischsein.SendTo EndPointThe AddressFamily of the EndPoint used in ReceiveFrom needs to match the AddressFamily of the EndPoint used in SendTo.

Hinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren.This member outputs trace information when you enable network tracing in your application. Weitere Informationen finden Sie unter Netzwerk Ablauf Verfolgung in der .NET Framework.For more information, see Network Tracing in the .NET Framework.

Sicherheit

SocketPermission
zum Akzeptieren von Verbindungen aus dem Netzwerk.for accepting connections from the network. Zugeordnete Enumeration: AcceptAssociated enumeration: Accept.

Gilt für:

Siehe auch