Socket.ReceiveMessageFrom Méthode

Définition

Reçoit le nombre spécifié d’octets de données dans l’emplacement spécifié de la mémoire tampon de données, en utilisant le point de terminaison et les informations de paquet.SocketFlags

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

Paramètres

buffer
Byte[]

Tableau de type Byte qui correspond à l’emplacement de stockage des données reçues.

offset
Int32

Position dans le buffer paramètre pour stocker les données reçues.

size
Int32

Nombre d’octets à recevoir.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

remoteEP
EndPoint

Référence à un EndPoint du même type que le point de terminaison de l’hôte distant à mettre à jour lors de la réception réussie.

ipPacketInformation
IPPacketInformation

Adresse IPPacketInformation de conservation et informations d’interface.

Retours

Nombre d’octets reçus.

Exceptions

buffer a la valeur null.

-ou-

remoteEP a la valeur null.

offset est inférieur à 0.

-ou-

offset est supérieur à la longueur de buffer.

-ou-

size est inférieur à 0.

-ou-

size est supérieur à la longueur du buffer moins la valeur du paramètre de décalage.

socketFlags n’est pas une combinaison valide de valeurs.

-ou-

La LocalEndPoint propriété n’a pas été définie.

-ou-

.NET Framework s’exécute sur un processeur AMD 64 bits.

-ou-

Une erreur s’est produite lors de la tentative d’accès au socket.

Il Socket a été fermé.

Remarques

La ReceiveMessageFrom méthode lit les données dans le buffer paramètre, retourne le nombre d’octets lus correctement et capture le point de terminaison hôte distant à partir duquel les données ont été envoyées, ainsi que des informations sur le paquet reçu.

La ReceiveMessageFrom méthode est utilisée principalement pour recevoir des données de message sur un socket sans connexion. L’adresse locale du socket doit être connue. Cette méthode ne peut être utilisée qu’avec le datagramme et les sockets bruts. Le socket doit être initialisé avec le type de socket défini sur Dgram ou Raw avant d’appeler cette méthode. Pour ce faire, lorsque le socket est construit à l’aide Socketde .

Pour les sockets orientés messages, un message entrant est placé dans le buffer paramètre jusqu’à la taille totale spécifiée dans le size paramètre. Le offset paramètre détermine l’emplacement dans les buffer données. La quantité réelle de données placées dans la bufferReceiveMessageFrom méthode est retournée.

La ReceiveMessageFrom méthode définit automatiquement l’option PacketInformationtrue de socket sur la première fois qu’elle est appelée pour une donnée Socket. Toutefois, l’objet retourné IPPacketInformation n’est valide que pour les paquets qui arrivent à l’ordinateur local une fois que l’option de socket a été définie. Si un socket est envoyé des paquets entre le moment où il est lié à un point de terminaison local (explicitement par la Bind méthode ou implicitement par l’un des Connectpaquets , ConnectAsyncou SendToAsyncSendTométhodes) et son premier appel à la méthode, les appels à ReceiveMessageFrom la ReceiveMessageFrom méthode retournent des objets non valides IPPacketInformation pour ces paquets.

Pour vous assurer que tous les IPPacketInformation objets sont valides, une application doit définir l’option PacketInformationtrue de socket avant qu’elle soit liée à un point de terminaison local à l’aide de la SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) méthode.

Une application peut examiner le ipPacketInformation paramètre s’il doit savoir si le datagramme a été envoyé à l’aide d’une monodiffusion, d’une multidiffusion ou d’une adresse de diffusion.

Note

L’élément AddressFamilyEndPoint utilisé dans ReceiveFrom doit correspondre à AddressFamily celui EndPoint utilisé dans SendTo.

Note

Ce membre génère des informations de suivi lorsque vous activez le suivi réseau dans votre application. Pour plus d’informations, consultez Network Tracing in .NET Framework.

S’applique à

Voir aussi