NetworkStream.Read Méthode

Définition

Surcharges

Read(Span<Byte>)

Lit des données dans NetworkStream et les stocke dans une plage d’octets en mémoire.Reads data from the NetworkStream and stores it to a span of bytes in memory.

Read(Byte[], Int32, Int32)

Lit des données dans NetworkStream et les stocke dans un tableau d’octets.Reads data from the NetworkStream and stores it to a byte array.

Read(Span<Byte>)

Lit des données dans NetworkStream et les stocke dans une plage d’octets en mémoire.Reads data from the NetworkStream and stores it to a span of bytes in memory.

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>

Zone de mémoire pour stocker les données lues à partir de NetworkStream.A region of memory to store data read from the NetworkStream.

Retours

Int32

Nombre d'octets lus à partir de NetworkStream.The number of bytes read from the NetworkStream.

Exceptions

NetworkStream ne prend pas en charge la lecture.The NetworkStream does not support reading.

Une erreur s’est produite pendant l’accès au socket.An error occurred when accessing the socket.

- ou --or-

Une erreur s'est produite pendant la lecture à partir du réseau.There is a failure reading from the network.

Le NetworkStream est fermé.The NetworkStream is closed.

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.This method reads as much data as is available into the buffer parameter and returns the number of bytes successfully read.

Notes

Vérifiez si le NetworkStream est lisible en appelant la CanRead propriété.Check to see if the NetworkStream is readable by calling the CanRead property. Si vous tentez de lire à partir d’un NetworkStream qui ne peut pas être lu, vous obtiendrez un InvalidOperationException .If you attempt to read from a NetworkStream that is not readable, you will get an InvalidOperationException.

Notes

Si vous recevez un IOException , vérifiez la InnerException propriété pour déterminer si elle a été provoquée par un SocketException .If you receive an IOException, check the InnerException property to determine if it was caused by a SocketException. Si c’est le cas, utilisez la ErrorCode propriété pour obtenir le code d’erreur spécifique et reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.If so, use the ErrorCode property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

S’applique à

Read(Byte[], Int32, Int32)

Lit des données dans NetworkStream et les stocke dans un tableau d’octets.Reads data from the NetworkStream and stores it to a byte array.

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
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui correspond à l'emplacement dans la mémoire pour stocker des données lues à partir de NetworkStream.An array of type Byte that is the location in memory to store data read from the NetworkStream.

offset
Int32

Emplacement de buffer auquel commencer le stockage des données.The location in buffer to begin storing the data to.

size
Int32

Nombre d'octets à lire à partir de NetworkStream.The number of bytes to read from the NetworkStream.

Retours

Int32

Nombre d'octets lus à partir de NetworkStream.The number of bytes read from the NetworkStream.

Exceptions

buffer a la valeur null.buffer is null.

offset est inférieur à 0.offset is less than 0.

- ou --or- offset est supérieur à la longueur de buffer.offset is greater than the length of buffer.

- ou --or- size est inférieur à 0.size is less than 0.

- ou --or- size est supérieur à la longueur de buffer moins offset.size is greater than the length of buffer minus offset.

NetworkStream ne prend pas en charge la lecture.The NetworkStream does not support reading.

Une erreur s’est produite pendant l’accès au socket.An error occurred when accessing the socket.

- ou --or-

Une erreur s'est produite pendant la lecture à partir du réseau.There is a failure reading from the network.

Le NetworkStream est fermé.The NetworkStream is closed.

Exemples

L’exemple de code suivant utilise DataAvailable pour déterminer si les données sont disponibles pour la lecture.The following code example uses DataAvailable to determine if data is available to be read. Si des données sont disponibles, elles sont lues à partir du NetworkStream .If data is available, it reads from the NetworkStream.

// Examples for CanRead, Read, and DataAvailable.
// Check to see if this NetworkStream is readable.
if ( myNetworkStream->CanRead )
{
   array<Byte>^ myReadBuffer = gcnew array<Byte>(1024);
   String^ myCompleteMessage = "";
   int numberOfBytesRead = 0;
   
   // Incoming message may be larger than the buffer size.
   do
   {
      numberOfBytesRead = myNetworkStream->Read( myReadBuffer, 0,
         myReadBuffer->Length );
      myCompleteMessage = String::Concat( myCompleteMessage,
         Encoding::ASCII->GetString( myReadBuffer, 0, numberOfBytesRead ) );
   }
   while ( myNetworkStream->DataAvailable );
   
   // Print out the received message to the console.
   Console::WriteLine( "You received the following message : {0}",
      myCompleteMessage );
}
else
{
   Console::WriteLine( "Sorry.  You cannot read from this NetworkStream." );
}
// Examples for CanRead, Read, and DataAvailable.

// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
    byte[] myReadBuffer = new byte[1024];
    StringBuilder myCompleteMessage = new StringBuilder();
    int numberOfBytesRead = 0;

    // Incoming message may be larger than the buffer size.
    do{
         numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

         myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
    }
    while(myNetworkStream.DataAvailable);

    // Print out the received message to the console.
    Console.WriteLine("You received the following message : " +
                                 myCompleteMessage);
}
else{
     Console.WriteLine("Sorry.  You cannot read from this NetworkStream.");
}

' Examples for CanRead, Read, and DataAvailable.
' Check to see if this NetworkStream is readable.
If myNetworkStream.CanRead Then
   Dim myReadBuffer(1024) As Byte
       Dim myCompleteMessage As StringBuilder = New StringBuilder()
   Dim numberOfBytesRead As Integer = 0
   
   ' Incoming message may be larger than the buffer size.
   Do
      numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length)
           myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead))
   Loop While myNetworkStream.DataAvailable
   
   ' Print out the received message to the console.
       Console.WriteLine(("You received the following message : " + myCompleteMessage.ToString()))
Else
   Console.WriteLine("Sorry.  You cannot read from this NetworkStream.")
End If

Remarques

Cette méthode lit les données dans buffer et retourne le nombre d’octets lus avec succès.This method reads data into buffer and returns the number of bytes successfully read. L' Read opération lit autant de données que possible, jusqu’au nombre d’octets spécifié par le size paramètre.The Read operation reads as much data as is available, up to the number of bytes specified by the size parameter.

Notes

Vérifiez si le NetworkStream est lisible en appelant la CanRead propriété.Check to see if the NetworkStream is readable by calling the CanRead property. Si vous tentez de lire à partir d’un NetworkStream qui ne peut pas être lu, vous obtiendrez un InvalidOperationException .If you attempt to read from a NetworkStream that is not readable, you will get an InvalidOperationException.

Notes

Si vous recevez un IOException , vérifiez la InnerException propriété pour déterminer si elle a été provoquée par un SocketException .If you receive an IOException, check the InnerException property to determine if it was caused by a SocketException. Si c’est le cas, utilisez la ErrorCode propriété pour obtenir le code d’erreur spécifique et reportez-vous à la documentation sur les codes d’erreur de l' API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.If so, use the ErrorCode property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Voir aussi

S’applique à