NetworkStream.Read Méthode

Définition

Surcharges

Nom Description
Read(Span<Byte>)

Lit les données à partir des données NetworkStream et les stocke dans une étendue d’octets en mémoire.

Read(Byte[], Int32, Int32)

Lit les données du NetworkStream tableau d’octets et les stocke dans un tableau d’octets.

Read(Span<Byte>)

Lit les données à partir des données NetworkStream et les stocke dans une étendue d’octets en mémoire.

public:
 override int Read(Span<System::Byte> buffer);
public override int Read(Span<byte> buffer);
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer

Paramètres

buffer
Span<Byte>

Région de mémoire pour stocker les données lues à partir du NetworkStream.

Retours

Nombre total d’octets lus dans la mémoire tampon, compris entre zéro (0) et la longueur de la mémoire tampon. 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

La NetworkStream lecture ne prend pas en charge la lecture.

Une erreur s’est produite lors de l’accès au socket.

-ou-

Il existe une erreur de lecture à partir du réseau.

La NetworkStream fermeture est terminée.

Remarques

Cette méthode lit autant de données que possible dans le buffer paramètre et retourne le nombre d’octets lus avec succès.

Note

Vérifiez si l’objet NetworkStream est lisible en appelant la CanRead propriété. Si vous tentez de lire à partir d’un NetworkStream élément qui n’est pas lisible, vous obtiendrez un InvalidOperationException.

Note

Si vous recevez un IOException, vérifiez la InnerException propriété pour déterminer si elle a été provoquée par un SocketException. Dans ce cas, utilisez la propriété ErrorCode pour obtenir le code d’erreur spécifique et reportez-vous au code d’erreur de l’API Windows Sockets version 2 documentation pour obtenir une description détaillée de l’erreur.

S’applique à

Read(Byte[], Int32, Int32)

Lit les données du NetworkStream tableau d’octets et les stocke dans un tableau d’octets.

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
abstract member Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui est l’emplacement en mémoire pour stocker les données lues à partir du NetworkStream.

offset
Int32

Emplacement dans buffer lequel commencer le stockage des données.

size
Int32

Nombre d’octets à lire à partir du NetworkStream.

Retours

Nombre total d’octets lus dans la mémoire tampon entre zéro (0) et le nombre demandé. 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 offset.

La NetworkStream lecture ne prend pas en charge la lecture.

Une erreur s’est produite lors de l’accès au socket.

-ou-

Il existe une erreur de lecture à partir du réseau.

La NetworkStream fermeture est terminée.

Exemples

L’exemple de code suivant lit les données à partir de la NetworkStream mémoire tampon. Si les données sont disponibles, elles continuent de lire jusqu’à ce que la fin du flux soit atteinte, en ajoutant les données reçues à un StringBuilder.

byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

// Read all the data until the end of stream has been reached.
// The incoming message may be larger than the buffer size.
while (numberOfBytesRead > 0)
{
    myCompleteMessage.Append(Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
    numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
}

// Print out the received message to the console.
Console.WriteLine("You received the following message : " + myCompleteMessage);

Remarques

Cette méthode lit les données et buffer retourne le nombre d’octets correctement lus. L’opération Read lit autant de données que possible, jusqu’au nombre d’octets spécifié par le count paramètre.

Note

Vérifiez si l’objet NetworkStream est lisible en appelant la CanRead propriété. Si vous tentez de lire à partir d’un NetworkStream élément qui n’est pas lisible, vous obtiendrez un InvalidOperationException.

Note

Si vous recevez un IOException, vérifiez la InnerException propriété pour déterminer si elle a été provoquée par un SocketException. Dans ce cas, utilisez la propriété ErrorCode pour obtenir le code d’erreur spécifique et reportez-vous au code d’erreur de l’API Windows Sockets version 2 documentation pour obtenir une description détaillée de l’erreur.

Voir aussi

S’applique à