Socket.Receive Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Reçoit des données d’une limite Socket.
Surcharges
| Nom | Description |
|---|---|
| Receive(Byte[], Int32, Int32, SocketFlags, SocketError) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags. |
| Receive(Span<Byte>, SocketFlags, SocketError) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception, à l’aide de l’élément spécifié SocketFlags. |
| Receive(Byte[], Int32, SocketFlags) |
Reçoit le nombre spécifié d’octets de données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’objet spécifié SocketFlags. |
| Receive(Span<Byte>, SocketFlags) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags. |
| Receive(Byte[], Int32, Int32, SocketFlags) |
Reçoit le nombre spécifié d’octets d’une limite Socket à la position de décalage spécifiée de la mémoire tampon de réception, à l’aide de l’objet spécifié SocketFlags. |
| Receive(Byte[], SocketFlags) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags. |
| Receive(Span<Byte>) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception. |
| Receive(IList<ArraySegment<Byte>>) |
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception. |
| Receive(Byte[]) |
Reçoit des données d’une limite Socket dans une mémoire tampon de réception. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags) |
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception, à l’aide de l’élément spécifié SocketFlags. |
Receive(Byte[], Int32, Int32, SocketFlags, SocketError)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Paramètres
- 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.
- errorCode
- SocketError
Objet SocketError qui stocke l’erreur de socket.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
buffer 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 de buffer moins la valeur du offset paramètre.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Une erreur s’est produite lors de la tentative d’accès au socket. Voir les remarques ci-dessous. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’au nombre d’octets spécifié par le paramètre de taille. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Span<Byte>, SocketFlags, SocketError)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Paramètres
- socketFlags
- SocketFlags
Combinaison au niveau du bit des valeurs d’énumération qui spécifient les comportements d’envoi et de réception.
- errorCode
- SocketError
Lorsque cette méthode est retournée, contient l’une des valeurs d’énumération qui définit des codes d’erreur pour le socket.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement que vous fournissiez une mémoire tampon de réception. Le décalage de la mémoire tampon est défini par défaut sur 0, la taille par défaut est la longueur du paramètre de mémoire tampon et la SocketFlags valeur par défaut None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Lorsque la valeur de délai d’attente est dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socketconnexion, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Liste de ArraySegment<T>s de type Byte qui contient les données reçues.
- socketFlags
- SocketFlags
Combinaison au niveau du bit des SocketFlags valeurs.
- errorCode
- SocketError
Objet SocketError qui stocke l’erreur de socket.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Remarques
Cette méthode lit les données dans le buffers paramètre et retourne le nombre d’octets lus avec succès. Vous pouvez appeler à partir de sockets orientés connexion et sans connexion.
Cette surcharge vous oblige à fournir une ou plusieurs mémoires tampons de réception. La SocketFlags valeur par défaut est None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de la connexion hôte distante établie dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion,Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffers paramètre, buffers est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Byte[], Int32, SocketFlags)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit le nombre spécifié d’octets de données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’objet spécifié SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer
Paramètres
- size
- Int32
Nombre d’octets à recevoir.
- socketFlags
- SocketFlags
Combinaison au niveau du bit des SocketFlags valeurs.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
buffer a la valeur null.
size dépasse la taille de buffer.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Exemples
Le code suivant reçoit les données trouvées dans buffer, et spécifie None pour SocketFlags.
// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}
' Receive the host home page content and loop until all the data is received.
'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine
Dim i As Integer
While bytes > 0
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)
End While
Remarques
La Receive méthode lit les données dans le buffer paramètre et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement de fournir une mémoire tampon de réception, le nombre d’octets que vous souhaitez recevoir et le nécessaire SocketFlags.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez votre opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’au nombre d’octets spécifié par le size paramètre. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Span<Byte>, SocketFlags)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer
Paramètres
- socketFlags
- SocketFlags
Combinaison au niveau du bit des valeurs d’énumération qui spécifient les comportements d’envoi et de réception.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement que vous fournissiez une mémoire tampon de réception. Le décalage de la mémoire tampon est défini par défaut sur 0, la taille par défaut est la longueur du paramètre de mémoire tampon et la SocketFlags valeur par défaut None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Lorsque la valeur de délai d’attente est dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socketconnexion, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer obtient rempli la première partie du message, les données excédentaires sont perdues et une SocketException levée est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
Ce membre génère des informations de suivi lorsque vous activez le suivi réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Byte[], Int32, Int32, SocketFlags)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit le nombre spécifié d’octets d’une limite Socket à la position de décalage spécifiée de la mémoire tampon de réception, à l’aide de l’objet spécifié SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer
Paramètres
- offset
- Int32
Emplacement dans buffer lequel stocker les données reçues.
- size
- Int32
Nombre d’octets à recevoir.
- socketFlags
- SocketFlags
Combinaison au niveau du bit des SocketFlags valeurs.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
buffer 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 de buffer moins la valeur du offset paramètre.
socketFlags n’est pas une combinaison valide de valeurs.
- ou -
La LocalEndPoint propriété n’a pas été définie.
- ou -
Une erreur de système d’exploitation se produit lors de l’accès au Socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Exemples
L’exemple de code suivant spécifie une mémoire tampon de données, un décalage, une taille et un indicateur de socket avant de recevoir des données sur une connexion Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest4
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Une erreur s’est produite lors de la tentative d’accès au socket. Voir les remarques ci-dessous. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’au nombre d’octets spécifié par le paramètre de taille. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Byte[], SocketFlags)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer
Paramètres
- socketFlags
- SocketFlags
Combinaison au niveau du bit des SocketFlags valeurs.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
buffer a la valeur null.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Exemples
L’exemple de code suivant spécifie une mémoire tampon de données et SocketFlags pour recevoir des données sur un objet connecté Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int byteCount = server.Send(msg, SocketFlags.None);
Console.WriteLine("Sent {0} bytes.", byteCount);
// Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None);
if (byteCount > 0)
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
Console.WriteLine("Sent {0} bytes.", byteCount)
' Get reply from the server.
byteCount = server.Receive(bytes, SocketFlags.None)
If byteCount > 0 Then
Console.WriteLine(Encoding.UTF8.GetString(bytes))
End If
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest2
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement que vous fournissiez une mémoire tampon de réception et le nécessaire SocketFlags. Le décalage de la mémoire tampon est défini par défaut sur 0 et la taille par défaut est la longueur du paramètre d’octet.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez votre opération de réception.
Si vous utilisez une connexion orientée Socketconnexion, la Receive méthode lit autant de données que disponible jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(Span<Byte>)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception.
public:
int Receive(Span<System::Byte> buffer);
public int Receive(Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer
Paramètres
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement que vous fournissiez une mémoire tampon de réception. Le décalage de la mémoire tampon est défini par défaut sur 0, la taille par défaut est la longueur du paramètre de mémoire tampon et la SocketFlags valeur par défaut None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant d’appeler Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Lorsque la valeur de délai d’attente est dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socketconnexion, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer obtient rempli la première partie du message, les données excédentaires sont perdues et une SocketException levée est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
Ce membre génère des informations de suivi lorsque vous activez le suivi réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(IList<ArraySegment<Byte>>)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Liste de ArraySegment<T>s de type Byte qui contient les données reçues.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Le buffers paramètre est null.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Remarques
Cette méthode lit les données dans le paramètre de mémoires tampons et retourne le nombre d’octets lus avec succès. Vous pouvez appeler à partir de sockets orientés connexion et sans connexion.
Cette surcharge vous oblige à fournir une ou plusieurs mémoires tampons de réception.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de la connexion hôte distante établie dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffers paramètre, buffers est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
S’applique à
Receive(Byte[])
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans une mémoire tampon de réception.
public:
int Receive(cli::array <System::Byte> ^ buffer);
public int Receive(byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer
Paramètres
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
buffer a la valeur null.
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Un appelant dans la pile des appels n’a pas les autorisations requises.
Exemples
L’exemple de code suivant reçoit des données sur un objet connecté Socket.
// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
byte[] msg = Encoding.UTF8.GetBytes("This is a test");
byte[] bytes = new byte[256];
try
{
// Blocks until send returns.
int i = server.Send(msg);
Console.WriteLine("Sent {0} bytes.", i);
// Get reply from the server.
i = server.Receive(bytes);
Console.WriteLine(Encoding.UTF8.GetString(bytes));
}
catch (SocketException e)
{
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
return (e.ErrorCode);
}
return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer
Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
Dim bytes(255) As Byte
Try
' Blocks until send returns.
Dim i As Integer = server.Send(msg)
Console.WriteLine("Sent {0} bytes.", i)
' Get reply from the server.
i = server.Receive(bytes)
Console.WriteLine(Encoding.UTF8.GetString(bytes))
Catch e As SocketException
Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
Return e.ErrorCode
End Try
Return 0
End Function 'SendReceiveTest1
Remarques
La Receive méthode lit les données dans le paramètre de mémoire tampon et retourne le nombre d’octets lus avec succès. Vous pouvez appeler Receive à partir de sockets orientés connexion et sans connexion.
Cette surcharge nécessite uniquement que vous fournissiez une mémoire tampon de réception. Le décalage de la mémoire tampon est défini par défaut sur 0, la taille par défaut est la longueur du paramètre de mémoire tampon et la SocketFlags valeur par défaut None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de l’hôte distant établi dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffer paramètre, buffer est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
S’applique à
Receive(IList<ArraySegment<Byte>>, SocketFlags)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Reçoit des données d’une limite Socket dans la liste des mémoires tampons de réception, à l’aide de l’élément spécifié SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Liste de ArraySegment<T>s de type Byte qui contient les données reçues.
- socketFlags
- SocketFlags
Combinaison au niveau du bit des SocketFlags valeurs.
Retours
Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal.
Exceptions
Une erreur s’est produite lors de la tentative d’accès au socket.
Il Socket a été fermé.
Exemples
L’exemple de code suivant montre comment recevoir des données sur un objet connecté Socket.
// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
new List<ArraySegment<byte>>(2);
byte[] bigBuffer = new byte[1024];
// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 4, 2));
// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 20, 500));
int bytesReceived = mySocket.Receive(recvBuffers);
Console.WriteLine("{0}", ASCII.GetString(bigBuffer));
Remarques
Cette méthode lit les données dans le buffers paramètre et retourne le nombre d’octets lus avec succès. Vous pouvez appeler à partir de sockets orientés connexion et sans connexion.
Cette surcharge vous oblige à fournir une ou plusieurs mémoires tampons de réception. La SocketFlags valeur par défaut est None.
Si vous utilisez un protocole orienté connexion, vous devez appeler Connect pour établir une connexion hôte distante ou Accept accepter une connexion entrante avant l’appel Receive. La Receive méthode lit uniquement les données qui arrivent de la connexion hôte distante établie dans la ou Accept la Connect méthode. Si vous utilisez un protocole sans connexion, vous pouvez également utiliser la ReceiveFrom méthode. ReceiveFrom vous permet de recevoir des données provenant de n’importe quel hôte.
Si aucune donnée n’est disponible pour la lecture, la Receive méthode bloque jusqu’à ce que les données soient disponibles, sauf si une valeur de délai d’attente a été définie à l’aide Socket.ReceiveTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Receive lève un SocketException. Si vous êtes en mode non bloquant et qu’il n’y a pas de données disponibles dans la mémoire tampon de la pile de protocoles, la Receive méthode se termine immédiatement et lève un SocketException. Vous pouvez utiliser la Available propriété pour déterminer si les données sont disponibles pour la lecture. Quand Available ce n’est pas zéro, réessayez l’opération de réception.
Si vous utilisez une connexion orientée Socket, la Receive méthode lit autant de données que disponible, jusqu’à la taille de la mémoire tampon. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la Receive méthode se termine immédiatement et retourne zéro octet.
Si vous utilisez un datagramme sans Socketconnexion, Receive lisez le premier datagramme mis en file d’attente à partir de l’adresse de destination que vous spécifiez dans la Connect méthode. Si le datagramme que vous recevez est supérieur à la taille du buffers paramètre, buffers est rempli avec la première partie du message, les données excédentaires sont perdues et une SocketException valeur est levée.
Note
Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.
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 Suivi réseau dans .NET Framework.
Voir aussi
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()