NetworkStream.Read Metode

Definisi

Overload

Nama Deskripsi
Read(Span<Byte>)

Membaca data dari NetworkStream dan menyimpannya ke rentang byte dalam memori.

Read(Byte[], Int32, Int32)

Membaca data dari NetworkStream dan menyimpannya ke array byte.

Read(Span<Byte>)

Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs

Membaca data dari NetworkStream dan menyimpannya ke rentang byte dalam memori.

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

buffer
Span<Byte>

Wilayah memori untuk menyimpan data yang NetworkStreamdibaca dari .

Mengembalikan

Jumlah total byte yang dibaca ke dalam buffer, antara nol (0) dan panjang buffer. Metode mengembalikan nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun.

Pengecualian

NetworkStream Tidak mendukung pembacaan.

Terjadi kesalahan saat mengakses soket.

-atau-

Ada kegagalan membaca dari jaringan.

Keterangan

Metode ini membaca data sebanyak yang tersedia ke dalam buffer parameter dan mengembalikan jumlah byte yang berhasil dibaca.

Note

Periksa untuk melihat apakah NetworkStream dapat dibaca dengan memanggil CanRead properti . Jika Anda mencoba membaca dari NetworkStream yang tidak dapat dibaca, Anda akan mendapatkan InvalidOperationException.

Note

Jika Anda menerima IOException, periksa InnerException properti untuk menentukan apakah itu disebabkan oleh SocketException. Jika demikian, gunakan properti ErrorCode untuk mendapatkan kode kesalahan tertentu dan lihat kode kesalahan API Windows Soket versi 2 dokumentasi untuk deskripsi terperinci tentang kesalahan tersebut.

Berlaku untuk

Read(Byte[], Int32, Int32)

Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs
Sumber:
NetworkStream.cs

Membaca data dari NetworkStream dan menyimpannya ke array byte.

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Public Overrides Function Read (buffer As Byte(), offset As Integer, size As Integer) As Integer

Parameter

buffer
Byte[]

Array jenis Byte yang merupakan lokasi dalam memori untuk menyimpan data yang NetworkStreamdibaca dari .

offset
Int32

Lokasi di buffer untuk mulai menyimpan data.

countsize
Int32

Jumlah byte yang akan dibaca dari NetworkStream.

Mengembalikan

Jumlah total byte yang dibaca ke dalam buffer antara nol (0) dan jumlah yang diminta. Metode mengembalikan nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun.

Pengecualian

buffer adalah null.

offset kurang dari 0.

-atau-

offset lebih besar dari panjang buffer.

-atau-

size kurang dari 0.

-atau-

size lebih besar dari panjang buffer minus offset.

NetworkStream Tidak mendukung pembacaan.

Terjadi kesalahan saat mengakses soket.

-atau-

Ada kegagalan membaca dari jaringan.

Contoh

Contoh kode berikut membaca data dari NetworkStream ke dalam buffer. Jika data tersedia, data akan terus membaca hingga akhir aliran tercapai, menambahkan data yang diterima ke StringBuilder.

byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

// Read all the data until the end of stream has been reached.
// The incoming message may be larger than the buffer size.
while (numberOfBytesRead > 0)
{
    myCompleteMessage.Append(Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
    numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
}

// Print out the received message to the console.
Console.WriteLine("You received the following message : " + myCompleteMessage);

Keterangan

Metode ini membaca data ke dalam buffer dan mengembalikan jumlah byte yang berhasil dibaca. Operasi membaca Read data sebanyak yang tersedia, hingga jumlah byte yang ditentukan oleh count parameter .

Note

Periksa untuk melihat apakah NetworkStream dapat dibaca dengan memanggil CanRead properti . Jika Anda mencoba membaca dari NetworkStream yang tidak dapat dibaca, Anda akan mendapatkan InvalidOperationException.

Note

Jika Anda menerima IOException, periksa InnerException properti untuk menentukan apakah itu disebabkan oleh SocketException. Jika demikian, gunakan properti ErrorCode untuk mendapatkan kode kesalahan tertentu dan lihat kode kesalahan API Windows Soket versi 2 dokumentasi untuk deskripsi terperinci tentang kesalahan tersebut.

Lihat juga

Berlaku untuk