Sdílet prostřednictvím


NetworkStream.Read Metoda

Definice

Přetížení

Read(Span<Byte>)

Čte data z NetworkStream a ukládá je do rozsahu bajtů v paměti.

Read(Byte[], Int32, Int32)

Načte data z NetworkStream a uloží je do pole bajtů.

Read(Span<Byte>)

Zdroj:
NetworkStream.cs
Zdroj:
NetworkStream.cs
Zdroj:
NetworkStream.cs

Čte data z NetworkStream a ukládá je do rozsahu bajtů v paměti.

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

Parametry

buffer
Span<Byte>

Oblast paměti pro ukládání dat přečtených z .NetworkStream

Návraty

Počet bajtů přečtených z NetworkStream.

Výjimky

Při přístupu k soketu došlo k chybě.

-nebo-

Při čtení ze sítě došlo k chybě.

Poznámky

Tato metoda načte do parametru buffer tolik dat, kolik je k dispozici, a vrátí počet bajtů, které byly úspěšně přečtené.

Poznámka

Zkontrolujte, jestli NetworkStream je čitelný voláním CanRead vlastnosti . Pokud se pokusíte číst z objektu NetworkStream , který není čitelný, zobrazí se InvalidOperationException.

Poznámka

Pokud obdržíte IOException, zkontrolujte vlastnost a InnerException zjistěte, jestli nebyla způsobená SocketException. Pokud ano, použijte ErrorCode vlastnost k získání konkrétního kódu chyby a podrobný popis chyby najdete v dokumentaci ke kódu chyb rozhraní API rozhraní Windows Sockets verze 2 .

Platí pro

Read(Byte[], Int32, Int32)

Zdroj:
NetworkStream.cs
Zdroj:
NetworkStream.cs
Zdroj:
NetworkStream.cs

Načte data z NetworkStream a uloží je do pole bajtů.

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

Parametry

buffer
Byte[]

Pole typu Byte , které je umístěním v paměti pro ukládání dat přečtených z objektu NetworkStream.

offset
Int32

Umístění v, do buffer které se mají data začít ukládat.

sizecount
Int32

Počet bajtů, které se mají přečíst z NetworkStream.

Návraty

Počet bajtů přečtených z NetworkStream.

Výjimky

buffer je null.

offset je menší než 0.

-nebo-

offsetje větší než délka .buffer

-nebo-

size je menší než 0.

-nebo-

size je větší než délka minus bufferoffset.

Při přístupu k soketu došlo k chybě.

-nebo-

Při čtení ze sítě došlo k chybě.

Příklady

Následující příklad kódu používá DataAvailable k určení, zda jsou data k dispozici ke čtení. Pokud jsou data k dispozici, načtou se z .NetworkStream

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

Poznámky

Tato metoda načte data do buffer a vrátí počet bajtů, které byly úspěšně přečtené. Operace Read načte tolik dat, kolik je k dispozici, až do počtu bajtů určených parametrem size .

Poznámka

Zkontrolujte, jestli NetworkStream je čitelný voláním CanRead vlastnosti . Pokud se pokusíte číst z objektu NetworkStream , který není čitelný, zobrazí se InvalidOperationException.

Poznámka

Pokud obdržíte IOException, zkontrolujte vlastnost a InnerException zjistěte, jestli nebyla způsobená SocketException. Pokud ano, použijte ErrorCode vlastnost k získání konkrétního kódu chyby a podrobný popis chyby najdete v dokumentaci ke kódu chyb rozhraní API rozhraní Windows Sockets verze 2 .

Viz také

Platí pro