SslStream.Write Metod

Definition

Skriver data till den här strömmen.

Överlagringar

Name Description
Write(Byte[])

Skriver angivna data till den här strömmen.

Write(ReadOnlySpan<Byte>)

När den åsidosätts i en härledd klass skriver du en sekvens med byte till den aktuella strömmen och flyttar fram den aktuella positionen i den här strömmen med antalet skrivna byte.

Write(Byte[], Int32, Int32)

Skriv det angivna antalet Bytes till den underliggande strömmen med den angivna bufferten och förskjutningen.

Write(Byte[])

Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs

Skriver angivna data till den här strömmen.

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

Parametrar

buffer
Byte[]

En Byte matris som tillhandahåller byte som skrivits till strömmen.

Undantag

buffer är null.

Skrivåtgärden misslyckades.

Det pågår redan en skrivåtgärd.

Det här objektet har stängts.

Autentiseringen har inte inträffat.

Exempel

Följande kodexempel visar hur du skriver till en autentiserad 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

Kommentarer

Den här metoden blockerar när åtgärden slutförs. Om du vill förhindra blockering när åtgärden är klar använder du BeginWrite metoden .

Du kan inte anropa den här metoden förrän du har autentiserats. Om du vill autentisera AuthenticateAsClientanropa någon av metoderna , eller BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

Klassen SslStream stöder inte flera samtidiga skrivåtgärder.

Gäller för

Write(ReadOnlySpan<Byte>)

Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs

När den åsidosätts i en härledd klass skriver du en sekvens med byte till den aktuella strömmen och flyttar fram den aktuella positionen i den här strömmen med antalet skrivna byte.

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))

Parametrar

buffer
ReadOnlySpan<Byte>

En region med minne. Den här metoden kopierar innehållet i den här regionen till den aktuella strömmen.

Gäller för

Write(Byte[], Int32, Int32)

Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs
Källa:
SslStream.cs

Skriv det angivna antalet Bytes till den underliggande strömmen med den angivna bufferten och förskjutningen.

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)

Parametrar

buffer
Byte[]

En Byte matris som tillhandahåller byte som skrivits till strömmen.

offset
Int32

En Int32 som innehåller den nollbaserade plats buffer där byte som ska skrivas till strömmen ska börja läsas.

count
Int32

A Int32 som innehåller antalet byte som ska läsas från buffer.

Undantag

buffer är null.

offset är mindre än noll.

-eller-

offset är större än längden på buffer.

-eller-

offset + antal är större än längden på buffer.

Skrivåtgärden misslyckades.

Det pågår redan en skrivåtgärd.

Det här objektet har stängts.

Autentiseringen har inte inträffat.

Kommentarer

Den här metoden blockerar när åtgärden slutförs. Om du vill förhindra blockering medan åtgärden slutförs använder du BeginWrite metoden .

Du kan inte anropa den här metoden förrän du har autentiserats. Om du vill autentisera AuthenticateAsClientanropa någon av metoderna , eller BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer

Klassen SslStream stöder inte flera samtidiga skrivåtgärder.

Gäller för