NetworkStream.Read Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Överlagringar
| Name | Description |
|---|---|
| Read(Span<Byte>) |
Läser data från NetworkStream och lagrar dem till ett intervall med byte i minnet. |
| Read(Byte[], Int32, Int32) |
Läser data från NetworkStream och lagrar dem till en bytematris. |
Read(Span<Byte>)
Läser data från NetworkStream och lagrar dem till ett intervall med byte i minnet.
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
Parametrar
En region med minne för att lagra data som lästs NetworkStreamfrån .
Returer
Det totala antalet byte som lästs in i bufferten, mellan noll (0) och buffertens längd. Metoden returnerar endast noll (0) om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning.
Undantag
Stöder NetworkStream inte läsning.
Ett fel uppstod vid åtkomst till socketen.
-eller-
Det går inte att läsa från nätverket.
Är NetworkStream stängd.
Kommentarer
Den här metoden läser så mycket data som är tillgängligt i parametern buffer och returnerar antalet byte som har lästs.
Note
Kontrollera om NetworkStream är läsbart genom att anropa egenskapen CanRead . Om du försöker läsa från en NetworkStream som inte är läsbar får du en InvalidOperationException.
Note
Om du får en IOExceptionkontrollerar du InnerException egenskapen för att avgöra om den orsakades av en SocketException. I så fall använder du egenskapen ErrorCode för att hämta den specifika felkoden och referera till felkoden Windows Sockets version 2 API för en detaljerad beskrivning av felet.
Gäller för
Read(Byte[], Int32, Int32)
Läser data från NetworkStream och lagrar dem till en bytematris.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int size);
public override int Read(byte[] buffer, int offset, int size);
override this.Read : byte[] * int * int -> int
abstract member 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
Parametrar
- buffer
- Byte[]
En matris av typen Byte som är platsen i minnet för att lagra data som lästs NetworkStreamfrån .
- offset
- Int32
Platsen i buffer för att börja lagra data till.
- size
- Int32
Antalet byte som ska läsas från NetworkStream.
Returer
Det totala antalet byte som lästs in i bufferten mellan noll (0) och det begärda antalet. Metoden returnerar endast noll (0) om noll byte begärdes eller om inga fler byte är tillgängliga eftersom peer-socketen utförde en graciös avstängning.
Undantag
buffer är null.
offset är mindre än 0.
-eller-
offset är större än längden på buffer.
-eller-
size är mindre än 0.
-eller-
size är större än längden buffer på minus offset.
Stöder NetworkStream inte läsning.
Ett fel uppstod vid åtkomst till socketen.
-eller-
Det går inte att läsa från nätverket.
Är NetworkStream stängd.
Exempel
I följande kodexempel läss data från NetworkStream till en buffert. Om data är tillgängliga fortsätter de att läsa tills dataströmmens slut har nåtts och lägger till mottagna data till en 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);
Kommentarer
Den här metoden läser in data i buffer och returnerar antalet byte som har lästs. Åtgärden Read läser så mycket data som är tillgängligt, upp till det antal byte som anges av parametern count .
Note
Kontrollera om NetworkStream är läsbart genom att anropa egenskapen CanRead . Om du försöker läsa från en NetworkStream som inte är läsbar får du en InvalidOperationException.
Note
Om du får en IOExceptionkontrollerar du InnerException egenskapen för att avgöra om den orsakades av en SocketException. I så fall använder du egenskapen ErrorCode för att hämta den specifika felkoden och referera till felkoden Windows Sockets version 2 API för en detaljerad beskrivning av felet.