Udostępnij za pośrednictwem


SslStream.Write Metoda

Definicja

Zapisuje dane w tym strumieniu.

Przeciążenia

Write(Byte[])

Zapisuje określone dane w tym strumieniu.

Write(Byte[], Int32, Int32)

Zapisz określoną liczbę Bytes do strumienia bazowego przy użyciu określonego buforu i przesunięcia.

Write(Byte[])

Źródło:
SslStream.cs
Źródło:
SslStream.cs
Źródło:
SslStream.cs

Zapisuje określone dane w tym strumieniu.

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

Parametry

buffer
Byte[]

Tablica dostarczająca Byte bajty zapisywane w strumieniu.

Wyjątki

buffer to null.

Operacja zapisu nie powiodła się.

Trwa już operacja zapisu.

Ten obiekt został zamknięty.

Uwierzytelnianie nie wystąpiło.

Przykłady

W poniższym przykładzie kodu pokazano pisanie do uwierzytelnionego SslStreamelementu .

static void ProcessClient( TcpClient^ client )
{
   
   // A client has connected. Create the 
   // SslStream using the client's network stream.
   SslStream^ sslStream = gcnew SslStream( client->GetStream(),false );
   
   // Authenticate the server but don't require the client to authenticate.
   try
   {
      sslStream->AuthenticateAsServer( serverCertificate, false, true );
      // false == no client cert required; true == check cert revocation.
      
      // 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( L"Waiting for client message..." );
      String^ messageData = ReadMessage( sslStream );
      Console::WriteLine( L"Received: {0}", messageData );
      
      // Write a message to the client.
      array<Byte>^message = Encoding::UTF8->GetBytes( L"Hello from the server.<EOF>" );
      Console::WriteLine( L"Sending hello message." );
      sslStream->Write( message );
   }
   catch ( AuthenticationException^ e ) 
   {
      Console::WriteLine( L"Exception: {0}", e->Message );
      if ( e->InnerException != nullptr )
      {
         Console::WriteLine( L"Inner exception: {0}", e->InnerException->Message );
      }
      Console::WriteLine( L"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();
   }

}
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

Uwagi

Ta metoda blokuje ukończenie operacji. Aby zapobiec blokowaniu podczas wykonywania operacji, użyj BeginWrite metody .

Nie można wywołać tej metody do momentu pomyślnego uwierzytelnienia. Aby uwierzytelnić wywołanie jednej z AuthenticateAsClientmetod , lub BeginAuthenticateAsClient,AuthenticateAsServerBeginAuthenticateAsServer.

Klasa SslStream nie obsługuje wielu równoczesnych operacji zapisu.

Dotyczy

Write(Byte[], Int32, Int32)

Źródło:
SslStream.cs
Źródło:
SslStream.cs
Źródło:
SslStream.cs

Zapisz określoną liczbę Bytes do strumienia bazowego przy użyciu określonego buforu i przesunięcia.

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)

Parametry

buffer
Byte[]

Tablica dostarczająca Byte bajty zapisywane w strumieniu.

offset
Int32

Element Int32 zawierający lokalizację opartą na zerach, w buffer której należy rozpocząć odczytywanie bajtów do zapisu w strumieniu.

count
Int32

Element Int32 zawierający liczbę bajtów do odczytu z bufferelementu .

Wyjątki

buffer to null.

Parametr offset ma wartość niższą niż zero.

-lub-

offset jest większa niż długość obiektu buffer.

-lub-

offset+ liczba jest większa niż długość .buffer

Operacja zapisu nie powiodła się.

Trwa już operacja zapisu.

Ten obiekt został zamknięty.

Uwierzytelnianie nie wystąpiło.

Uwagi

Ta metoda blokuje ukończenie operacji. Aby zapobiec blokowaniu podczas wykonywania operacji zakończonej operacji, użyj BeginWrite metody .

Nie można wywołać tej metody do momentu pomyślnego uwierzytelnienia. Aby uwierzytelnić wywołanie jednej z AuthenticateAsClientmetod , lub BeginAuthenticateAsClient,AuthenticateAsServerBeginAuthenticateAsServer.

Klasa SslStream nie obsługuje wielu równoczesnych operacji zapisu.

Dotyczy