NetworkStream.Read Yöntem

Tanım

Aşırı Yüklemeler

Read(Span<Byte>)

dosyasındaki NetworkStream verileri okur ve bellekteki bir bayt aralığına depolar.

Read(Byte[], Int32, Int32)

'den NetworkStream verileri okur ve bir bayt dizisine depolar.

Read(Span<Byte>)

Kaynak:
NetworkStream.cs
Kaynak:
NetworkStream.cs
Kaynak:
NetworkStream.cs

dosyasındaki NetworkStream verileri okur ve bellekteki bir bayt aralığına depolar.

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

buffer
Span<Byte>

'den NetworkStreamokunan verileri depolamak için bellek bölgesi.

Döndürülenler

'den NetworkStreamokunan bayt sayısı.

Özel durumlar

, NetworkStream okumayı desteklemez.

Yuvaya erişilirken bir hata oluştu.

-veya-

Ağdan okuma hatası var.

Açıklamalar

Bu yöntem, parametresinde buffer kullanılabilir olan kadar veri okur ve başarıyla okunan bayt sayısını döndürür.

Not

özelliğini çağırarak CanRead öğesinin NetworkStream okunabilir olup olmadığını denetleyin. Okunamayan bir NetworkStream öğeden okumaya çalışırsanız, bir InvalidOperationExceptionalırsınız.

Not

bir IOExceptionalırsanız, özelliğini denetleyerek InnerException nedeninin bir SocketExceptionolup olmadığını belirleyin. Bu durumda, belirli bir hata kodunu almak için özelliğini kullanın ErrorCode ve hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Şunlara uygulanır

Read(Byte[], Int32, Int32)

Kaynak:
NetworkStream.cs
Kaynak:
NetworkStream.cs
Kaynak:
NetworkStream.cs

'den NetworkStream verileri okur ve bir bayt dizisine depolar.

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

Parametreler

buffer
Byte[]

bellekteki konumundan Byte okunan NetworkStreamverileri depolamak için kullanılan tür dizisi.

offset
Int32

Verilerin depolanacağını konum buffer .

sizecount
Int32

'den NetworkStreamokunacak bayt sayısı.

Döndürülenler

'den NetworkStreamokunan bayt sayısı.

Özel durumlar

buffer, null değeridir.

offset 0'dan küçüktür.

-veya-

offset , uzunluğundan bufferbüyüktür.

-veya-

size 0'dan küçüktür.

-veya-

size, eksi offsetdeğerinden buffer büyük.

, NetworkStream okumayı desteklemez.

Yuvaya erişilirken bir hata oluştu.

-veya-

Ağdan okuma hatası var.

Örnekler

Aşağıdaki kod örneği, verilerin okunmaya uygun olup olmadığını belirlemek için kullanır DataAvailable . Kullanılabilir veriler varsa, veri kaynağından NetworkStreamokur.

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);

Açıklamalar

Bu yöntem verileri içine buffer okur ve başarıyla okunan bayt sayısını döndürür. İşlem Read , parametresi tarafından size belirtilen bayt sayısına kadar kullanılabilir olduğu kadar veri okur.

Not

özelliğini çağırarak CanRead öğesinin NetworkStream okunabilir olup olmadığını denetleyin. Okunamayan bir NetworkStream öğeden okumaya çalışırsanız, bir InvalidOperationExceptionalırsınız.

Not

bir IOExceptionalırsanız, özelliğini denetleyerek InnerException nedeninin bir SocketExceptionolup olmadığını belirleyin. Bu durumda, belirli bir hata kodunu almak için özelliğini kullanın ErrorCode ve hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Ayrıca bkz.

Şunlara uygulanır