NegotiateStream.Read(Byte[], Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このストリームからデータを読み取り、指定した配列に格納します。
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
パラメーター
戻り値
基になるストリームから読み取るバイト数を指定する Int32 値。 読み取るデータがこれ以上存在しない場合は 0 を返します。
例外
読み取り操作に失敗しました。
認証が行われていません。
Read(Byte[], Int32, Int32) 操作は既に実行されています。
例
次のコード例では、 からの読み取りを NegotiateStream示します。
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();
}
注釈
メソッドは、現在のcount
ストリームから最大バイト数を読み取り、 でoffset
始まる位置にbuffer
格納します。
正常に認証されるまで、このメソッドを呼び出すことはできません。 認証するには、または BeginAuthenticateAsServer のいずれかのAuthenticateAsServerAsyncAuthenticateAsClientAuthenticateAsClientAsyncBeginAuthenticateAsClientAuthenticateAsServerメソッドを呼び出します。
この操作を非同期的に実行するには、 メソッドを使用します ReadAsync 。