SslStream.Read Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Read(Span<Byte>) | |
| Read(Byte[], Int32, Int32) |
Bu akıştaki verileri okur ve belirtilen dizide depolar. |
Read(Span<Byte>)
- Kaynak:
- SslStream.cs
- Kaynak:
- SslStream.cs
public:
override int Read(Span<System::Byte> buffer);
public override int Read(Span<byte> buffer);
override this.Read : Span<byte> -> int
Public Overrides Function Read (buffer As Span(Of Byte)) As Integer
Parametreler
Döndürülenler
Şunlara uygulanır
Read(Byte[], Int32, Int32)
- Kaynak:
- SslStream.cs
- Kaynak:
- SslStream.cs
- Kaynak:
- SslStream.cs
- Kaynak:
- SslStream.cs
Bu akıştaki verileri okur ve belirtilen dizide depolar.
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
Parametreler
- offset
- Int32
Int32 Bu akıştan okunan verileri depolamaya başlamak için sıfır tabanlı konumu buffer içeren bir.
Döndürülenler
Int32 Okunan bayt sayısını belirten bir değer. Okunacak veri kalmadığında 0 döndürür.
Özel durumlar
buffer, null değeridir.
offset, sıfırdan küçüktür.
-veya-
offset uzunluğundan bufferbüyük.
-veya-
offset + sayı, uzunluğundan bufferbüyüktür.
Okuma işlemi başarısız oldu. Hatanın nedenini belirlemek için varsa iç özel durumu denetleyin.
Devam eden bir okuma işlemi zaten var.
Bu nesne kapatıldı.
Kimlik doğrulaması gerçekleşmedi.
Örnekler
Aşağıdaki kod örneği bir SslStream'den okumayı gösterir.
static string ReadMessage(SslStream sslStream)
{
// Read the message sent by the server.
// The end of the message is signaled using the
// "<EOF>" marker.
byte [] buffer = new byte[2048];
StringBuilder messageData = new StringBuilder();
int bytes = -1;
do
{
bytes = sslStream.Read(buffer, 0, buffer.Length);
// Use Decoder class to convert from bytes to UTF8
// in case a character spans two buffers.
Decoder decoder = Encoding.UTF8.GetDecoder();
char[] chars = new char[decoder.GetCharCount(buffer,0,bytes)];
decoder.GetChars(buffer, 0, bytes, chars,0);
messageData.Append (chars);
// Check for EOF.
if (messageData.ToString().IndexOf("<EOF>") != -1)
{
break;
}
} while (bytes != 0);
return messageData.ToString();
}
Private Shared Function ReadMessage(sslStream As SslStream) As String
' Read the message sent by the server.
' The end of the message is signaled using the "<EOF>" marker.
Dim buffer = New Byte(2048) {}
Dim messageData = New StringBuilder()
Dim bytes As Integer
Do
bytes = sslStream.Read(buffer, 0, buffer.Length)
' Use Decoder class to convert from bytes to UTF8
' in case a character spans two buffers.
Dim decoder As Decoder = Encoding.UTF8.GetDecoder()
Dim chars = New Char(decoder.GetCharCount(buffer, 0, bytes) - 1) {}
decoder.GetChars(buffer, 0, bytes, chars, 0)
messageData.Append(chars)
' Check for EOF.
If messageData.ToString().IndexOf("<EOF>") <> -1 Then Exit Do
Loop While bytes <> 0
Return messageData.ToString()
End Function
Açıklamalar
yöntemi, akıştan en fazla count bayt sayısını okur ve başında depolar bufferoffset. Birden çok eşzamanlı okuma işlemi gerçekleştiremezsiniz.
Kimlik doğrulaması başarılı olana kadar bu yöntemi çağıramazsınız. Kimlik doğrulaması yapmak için , veya BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer yöntemlerinden birini AuthenticateAsClientçağırın.
Bu işlemi zaman uyumsuz olarak gerçekleştirmek için yöntemini kullanın BeginRead .