SslStream.Write Método

Definición

Escribe datos en esta secuencia.

Sobrecargas

Nombre Description
Write(Byte[])

Escribe los datos especificados en esta secuencia.

Write(ReadOnlySpan<Byte>)

Cuando se reemplaza en una clase derivada, escribe una secuencia de bytes en la secuencia actual y avanza la posición actual dentro de esta secuencia por el número de bytes escritos.

Write(Byte[], Int32, Int32)

Escriba el número especificado de Bytes en la secuencia subyacente mediante el búfer y el desplazamiento especificados.

Write(Byte[])

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Escribe los datos especificados en esta secuencia.

public:
 void Write(cli::array <System::Byte> ^ buffer);
public void Write(byte[] buffer);
override this.Write : byte[] -> unit
Public Sub Write (buffer As Byte())

Parámetros

buffer
Byte[]

Matriz Byte que proporciona los bytes escritos en la secuencia.

Excepciones

buffer es null.

Error en la operación de escritura.

Ya hay una operación de escritura en curso.

Este objeto se ha cerrado.

No se ha producido la autenticación.

Ejemplos

En el ejemplo de código siguiente se muestra cómo escribir en un autenticado SslStream.

static void ProcessClient (TcpClient client)
{
    // A client has connected. Create the
    // SslStream using the client's network stream.
    SslStream sslStream = new SslStream(
        client.GetStream(), false);
    // Authenticate the server but don't require the client to authenticate.
    try
    {
        sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired: false, checkCertificateRevocation: true);

        // Display the properties and settings for the authenticated stream.
        DisplaySecurityLevel(sslStream);
        DisplaySecurityServices(sslStream);
        DisplayCertificateInformation(sslStream);
        DisplayStreamProperties(sslStream);

        // Set timeouts for the read and write to 5 seconds.
        sslStream.ReadTimeout = 5000;
        sslStream.WriteTimeout = 5000;
        // Read a message from the client.
        Console.WriteLine("Waiting for client message...");
        string messageData = ReadMessage(sslStream);
        Console.WriteLine("Received: {0}", messageData);

        // Write a message to the client.
        byte[] message = Encoding.UTF8.GetBytes("Hello from the server.<EOF>");
        Console.WriteLine("Sending hello message.");
        sslStream.Write(message);
    }
    catch (AuthenticationException e)
    {
        Console.WriteLine("Exception: {0}", e.Message);
        if (e.InnerException != null)
        {
            Console.WriteLine("Inner exception: {0}", e.InnerException.Message);
        }
        Console.WriteLine ("Authentication failed - closing the connection.");
        sslStream.Close();
        client.Close();
        return;
    }
    finally
    {
        // The client stream will be closed with the sslStream
        // because we specified this behavior when creating
        // the sslStream.
        sslStream.Close();
        client.Close();
    }
}
Private Shared Sub ProcessClient(client As TcpClient)
    ' A client has connected. Create the 
    ' SslStream using the client's network stream.
    Dim sslStream = New SslStream(client.GetStream(), False)

    Try

        sslStream.AuthenticateAsServer(serverCertificate, clientCertificateRequired:=False, checkCertificateRevocation:=True)
        ' Display the properties And settings for the authenticated stream.
        DisplaySecurityLevel(sslStream)
        DisplaySecurityServices(sslStream)
        DisplayCertificateInformation(sslStream)
        DisplayStreamProperties(sslStream)

        ' Set timeouts for the read and write to 5 seconds.
        sslStream.ReadTimeout = 5000
        sslStream.WriteTimeout = 5000

        ' Read a message from the client.   
        Console.WriteLine("Waiting for client message...")
        Dim messageData As String = ReadMessage(sslStream)
        Console.WriteLine("Received: {0}", messageData)

        ' Write a message to the client.
        Dim message As Byte() = Encoding.UTF8.GetBytes("Hello from the server.<EOF>")
        Console.WriteLine("Sending hello message.")
        sslStream.Write(message)
    Catch e As AuthenticationException
        Console.WriteLine("Exception: {0}", e.Message)

        If e.InnerException IsNot Nothing Then
            Console.WriteLine("Inner exception: {0}", e.InnerException.Message)
        End If

        Console.WriteLine("Authentication failed - closing the connection.")
        sslStream.Close()
        client.Close()
        Return
    Finally
        ' The client stream will be closed with the sslStream
        ' because we specified this behavior when creating
        ' the sslStream.
        sslStream.Close()
        client.Close()
    End Try
End Sub

Comentarios

Este método se bloquea mientras se completa la operación. Para evitar el bloqueo mientras se completa la operación, use el BeginWrite método .

No puede llamar a este método hasta que se haya autenticado correctamente. Para autenticar una de las llamadas a uno de los AuthenticateAsClientmétodos , o BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

La SslStream clase no admite varias operaciones de escritura simultáneas.

Se aplica a

Write(ReadOnlySpan<Byte>)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Cuando se reemplaza en una clase derivada, escribe una secuencia de bytes en la secuencia actual y avanza la posición actual dentro de esta secuencia por el número de bytes escritos.

public:
 override void Write(ReadOnlySpan<System::Byte> buffer);
public override void Write(ReadOnlySpan<byte> buffer);
override this.Write : ReadOnlySpan<byte> -> unit
Public Overrides Sub Write (buffer As ReadOnlySpan(Of Byte))

Parámetros

buffer
ReadOnlySpan<Byte>

Una región de memoria. Este método copia el contenido de esta región en la secuencia actual.

Se aplica a

Write(Byte[], Int32, Int32)

Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs
Source:
SslStream.cs

Escriba el número especificado de Bytes en la secuencia subyacente mediante el búfer y el desplazamiento especificados.

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

Parámetros

buffer
Byte[]

Matriz Byte que proporciona los bytes escritos en la secuencia.

offset
Int32

que Int32 contiene la ubicación de base cero en la buffer que se van a empezar a leer bytes que se van a escribir en la secuencia.

count
Int32

Int32 que contiene el número de bytes que se van a leer de buffer.

Excepciones

buffer es null.

offset es menor que cero.

O bien

offset es mayor que la longitud de buffer.

O bien

offset + count es mayor que la longitud de buffer.

Error en la operación de escritura.

Ya hay una operación de escritura en curso.

Este objeto se ha cerrado.

No se ha producido la autenticación.

Comentarios

Este método se bloquea mientras se completa la operación. Para evitar el bloqueo mientras la operación completa la operación se completa, use el BeginWrite método .

No puede llamar a este método hasta que se haya autenticado correctamente. Para autenticar una de las llamadas a uno de los AuthenticateAsClientmétodos , o BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

La SslStream clase no admite varias operaciones de escritura simultáneas.

Se aplica a