다음을 통해 공유


NetworkStream.Read 메서드

정의

오버로드

Read(Span<Byte>)

NetworkStream에서 데이터를 읽고 메모리의 바이트 범위에 저장합니다.

Read(Byte[], Int32, Int32)

NetworkStream에서 데이터를 읽고 바이트 배열에 저장합니다.

Read(Span<Byte>)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

NetworkStream에서 데이터를 읽고 메모리의 바이트 범위에 저장합니다.

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

매개 변수

buffer
Span<Byte>

NetworkStream에서 읽은 데이터를 저장할 메모리 영역입니다.

반환

NetworkStream에서 읽은 바이트 수입니다.

예외

NetworkStream이 읽기를 지원하지 않습니다.

소켓에 액세스할 때 오류가 발생했습니다.

또는

네트워크에서 읽는 동안 오류가 발생한 경우

설명

이 메서드는 매개 변수에 buffer 사용할 수 있는 만큼의 데이터를 읽고 성공적으로 읽은 바이트 수를 반환합니다.

참고

속성을 호출 CanRead 하여 가 NetworkStream 읽을 수 있는지 확인합니다. 읽을 수 없는 에서 NetworkStream 읽으려고 하면 가 InvalidOperationException표시됩니다.

참고

를 수신하는 IOException경우 속성을 검사 InnerException 속성이 로 SocketException인해 발생했는지 확인합니다. 그렇다면 속성을 사용하여 ErrorCode 특정 오류 코드를 가져오고 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하여 오류에 대한 자세한 설명을 참조하세요.

적용 대상

Read(Byte[], Int32, Int32)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

NetworkStream에서 데이터를 읽고 바이트 배열에 저장합니다.

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

매개 변수

buffer
Byte[]

Byte에서 읽은 데이터를 저장하기 위한 메모리 내의 위치에 해당하는 NetworkStream 형식의 배열입니다.

offset
Int32

데이터를 저장하기 시작하는 buffer 내의 위치입니다.

sizecount
Int32

NetworkStream에서 읽을 바이트 수입니다.

반환

NetworkStream에서 읽은 바이트 수입니다.

예외

buffer이(가) null인 경우

offset 가 0보다 작습니다.

또는

offsetbuffer의 길이보다 큽니다.

또는

size 가 0보다 작습니다.

또는

sizebuffer의 길이에서 offset를 뺀 값보다 큰 경우

NetworkStream이 읽기를 지원하지 않습니다.

소켓에 액세스할 때 오류가 발생했습니다.

또는

네트워크에서 읽는 동안 오류가 발생한 경우

예제

다음 코드 예제에서는 를 사용하여 DataAvailable 데이터를 읽을 수 있는지 확인합니다. 데이터를 사용할 수 있는 경우 에서 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);

설명

이 메서드는 데이터를 로 buffer 읽고 성공적으로 읽은 바이트 수를 반환합니다. 작업은 Read 매개 변수에 지정된 size 바이트 수까지 사용 가능한 만큼의 데이터를 읽습니다.

참고

속성을 호출 CanRead 하여 가 NetworkStream 읽을 수 있는지 확인합니다. 읽을 수 없는 에서 NetworkStream 읽으려고 하면 가 InvalidOperationException표시됩니다.

참고

를 수신하는 IOException경우 속성을 검사 InnerException 속성이 로 SocketException인해 발생했는지 확인합니다. 그렇다면 속성을 사용하여 ErrorCode 특정 오류 코드를 가져오고 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하여 오류에 대한 자세한 설명을 참조하세요.

추가 정보

적용 대상