SslStream.Write Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zapíše data do tohoto datového proudu.
Přetížení
Write(Byte[]) |
Zapíše zadaná data do tohoto datového proudu. |
Write(Byte[], Int32, Int32) |
Zapište zadaný počet s do podkladového datového Byteproudu pomocí zadané vyrovnávací paměti a posunu. |
Write(Byte[])
- Zdroj:
- SslStream.cs
- Zdroj:
- SslStream.cs
- Zdroj:
- SslStream.cs
Zapíše zadaná data do tohoto datového proudu.
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
Výjimky
buffer
je null
.
Operace zápisu se nezdařila.
Už probíhá operace zápisu.
Tento objekt byl uzavřen.
K ověření nedošlo.
Příklady
Následující příklad kódu ukazuje zápis do ověřeného SslStreamobjektu .
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
Poznámky
Tato metoda blokuje, zatímco se operace dokončí. Pokud chcete zabránit blokování během dokončení operace, použijte metodu BeginWrite .
Tuto metodu nelze volat, dokud se úspěšně neověříte. Pokud chcete ověřit, zavolejte jednu z AuthenticateAsClientmetod , nebo BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer
Třída SslStream nepodporuje více souběžných operací zápisu.
Platí pro
Write(Byte[], Int32, Int32)
- Zdroj:
- SslStream.cs
- Zdroj:
- SslStream.cs
- Zdroj:
- SslStream.cs
Zapište zadaný počet s do podkladového datového Byteproudu pomocí zadané vyrovnávací paměti a posunu.
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
- offset
- Int32
A Int32 , který obsahuje umístění založené na nule, ve buffer
kterém chcete začít číst bajty, které se mají zapisovat do datového proudu.
Výjimky
buffer
je null
.
Hodnota offset
je menší než nula.
-nebo-
offset
je větší než délka .buffer
-nebo-
offset
+count je větší než délka .buffer
Operace zápisu se nezdařila.
Už probíhá operace zápisu.
Tento objekt byl uzavřen.
K ověření nedošlo.
Poznámky
Tato metoda blokuje, zatímco se operace dokončí. Pokud chcete zabránit blokování během dokončení operace, použijte metodu BeginWrite .
Tuto metodu nelze volat, dokud se úspěšně neověříte. Pokud chcete ověřit, zavolejte jednu z AuthenticateAsClientmetod , nebo BeginAuthenticateAsClient, AuthenticateAsServer. BeginAuthenticateAsServer
Třída SslStream nepodporuje více souběžných operací zápisu.