NegotiateStream.Read(Byte[], Int32, Int32) Méthode

Définition

Lit les données de ce flux et les stocke dans le tableau spécifié.

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

Paramètres

buffer
Byte[]

Tableau Byte qui reçoit les octets lus à partir du flux.

offset
Int32

Contenant Int32 l’emplacement de base zéro dans buffer lequel commencer à stocker les données lues à partir de ce flux.

count
Int32

Contenant Int32 le nombre maximal d’octets à lire à partir du flux.

Retours

Valeur Int32 qui spécifie le nombre d’octets lus à partir du flux sous-jacent. Lorsqu’il n’y a plus de données à lire, retourne 0.

Exceptions

Échec de l’opération de lecture.

L’authentification n’a pas eu lieu.

Une Read(Byte[], Int32, Int32) opération est déjà en cours.

Exemples

L’exemple de code suivant illustre la lecture à partir d’un NegotiateStream.

public static void AuthenticateClient(TcpClient clientRequest)
{
    NetworkStream stream = clientRequest.GetStream();
    // Create the NegotiateStream.
    NegotiateStream authStream = new NegotiateStream(stream, false);
    // Perform the server side of the authentication.
    authStream.AuthenticateAsServer();
    // Display properties of the authenticated client.
    IIdentity id = authStream.RemoteIdentity;
    Console.WriteLine("{0} was authenticated using {1}.",
        id.Name,
        id.AuthenticationType
        );
    // Read a message from the client.
    byte [] buffer = new byte[2048];
    int charLength = authStream.Read(buffer, 0, buffer.Length);
    string messageData = new String(Encoding.UTF8.GetChars(buffer, 0, buffer.Length));

    Console.WriteLine("READ {0}", messageData);
    // Finished with the current client.
    authStream.Close();
    // Close the client connection.
    clientRequest.Close();
}

Remarques

La méthode lit un maximum d’octets count à partir du flux actuel et les stocke en buffer commençant par offset.

Vous ne pouvez pas appeler cette méthode tant que vous n’avez pas correctement authentifié. Pour s’authentifier, appelez l’une AuthenticateAsClientdes méthodes ,BeginAuthenticateAsServerAuthenticateAsClientAsyncBeginAuthenticateAsClientAuthenticateAsServerAuthenticateAsServerAsync

Pour effectuer cette opération de façon asynchrone, utilisez la ReadAsync méthode.

S’applique à