NetworkStream.Read 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.
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
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.