NegotiateStream.Read(Byte[], Int32, Int32) 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í.
Načte data z tohoto datového proudu a uloží je do zadaného pole.
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
Parametry
- offset
- Int32
Obsahující Int32 umístění založené na nule, ve buffer
kterém chcete začít ukládat data načtená z tohoto datového proudu.
Návraty
Hodnota Int32 , která určuje počet bajtů přečtených z podkladového datového proudu. Pokud nejsou k dispozici žádná další data ke čtení, vrátí 0.
Výjimky
Operace čtení se nezdařila.
K ověření nedošlo.
Operace Read(Byte[], Int32, Int32) již probíhá.
Příklady
Následující příklad kódu ukazuje čtení z .NegotiateStream
static void AuthenticateClient( TcpClient^ clientRequest )
{
NetworkStream^ stream = clientRequest->GetStream();
// Create the NegotiateStream.
NegotiateStream^ authStream = gcnew NegotiateStream( stream,false );
// Perform the server side of the authentication.
authStream->AuthenticateAsServer();
// Display properties of the authenticated client.
IIdentity^ id = authStream->RemoteIdentity;
Console::WriteLine( L"{0} was authenticated using {1}.", id->Name, id->AuthenticationType );
// Read a message from the client.
array<Byte>^buffer = gcnew array<Byte>(2048);
int charLength = authStream->Read( buffer, 0, buffer->Length );
String^ messageData = gcnew String( Encoding::UTF8->GetChars( buffer, 0, buffer->Length ) );
Console::WriteLine( L"READ {0}", messageData );
// Finished with the current client.
authStream->Close();
// Close the client connection.
clientRequest->Close();
}
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();
}
Poznámky
Metoda načte maximální počet count
bajtů z aktuálního datového proudu a uloží je od buffer
offset
.
Tuto metodu nelze volat, dokud se úspěšně neověříte. Pokud chcete provést ověření, zavolejte jednu z AuthenticateAsClientmetod , AuthenticateAsClientAsync, BeginAuthenticateAsClient, AuthenticateAsServer, AuthenticateAsServerAsyncnebo BeginAuthenticateAsServer .
Pokud chcete tuto operaci provést asynchronně, použijte metodu ReadAsync .