SslStream.Read Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
| Nama | Deskripsi |
|---|---|
| Read(Span<Byte>) |
Ketika ditimpa dalam kelas turunan, membaca urutan byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca. |
| Read(Byte[], Int32, Int32) |
Membaca data dari aliran ini dan menyimpannya dalam array yang ditentukan. |
Read(Span<Byte>)
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
Ketika ditimpa dalam kelas turunan, membaca urutan byte dari aliran saat ini dan memajukan posisi dalam aliran dengan jumlah byte yang dibaca.
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
Parameter
Wilayah memori. Ketika metode ini kembali, konten wilayah ini digantikan oleh byte yang dibaca dari sumber saat ini.
Mengembalikan
Jumlah total byte yang dibaca ke dalam buffer. Ini bisa kurang dari ukuran buffer jika banyak byte saat ini tidak tersedia, atau nol (0) jika panjang buffer adalah nol atau akhir aliran telah tercapai.
Berlaku untuk
Read(Byte[], Int32, Int32)
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
- Sumber:
- SslStream.cs
Membaca data dari aliran ini dan menyimpannya dalam array yang ditentukan.
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
Parameter
- offset
- Int32
Int32 yang berisi lokasi berbasis nol di buffer mana untuk mulai menyimpan data yang dibaca dari aliran ini.
Mengembalikan
Nilai Int32 yang menentukan jumlah byte yang dibaca. Ketika tidak ada lagi data yang akan dibaca, mengembalikan 0.
Pengecualian
buffer adalah null.
offset kurang dari nol.
-atau-
offset lebih besar dari panjang buffer.
-atau-
offset + hitungan lebih besar dari panjang buffer.
Operasi baca gagal. Periksa pengecualian dalam, jika ada untuk menentukan penyebab kegagalan.
Sudah ada operasi baca yang sedang berlangsung.
Objek ini telah ditutup.
Autentikasi belum terjadi.
Contoh
Contoh kode berikut menunjukkan pembacaan dari SslStream.
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
Keterangan
Metode ini membaca maksimum count byte dari aliran dan menyimpannya di buffer awal di offset. Anda tidak dapat melakukan beberapa operasi baca simultan.
Anda tidak dapat memanggil metode ini sampai Anda berhasil mengautentikasi. Untuk mengautentikasi panggilan salah AuthenticateAsClientsatu metode , atau BeginAuthenticateAsClient, AuthenticateAsServer, BeginAuthenticateAsServer .
Untuk melakukan operasi ini secara asinkron, gunakan BeginRead metode .