NetworkStream.Read 메서드

정의

오버로드

Read(Span<Byte>)

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

Read(Byte[], Int32, Int32)

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

Read(Span<Byte>)

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에서 읽은 데이터를 저장할 메모리 영역입니다.

반환

Int32

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

예외

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

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

또는

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

설명

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

참고

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

참고

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

적용 대상

Read(Byte[], Int32, Int32)

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에서 읽을 바이트 수입니다.

반환

Int32

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

예외

buffer이(가) null인 경우

offset 가 0보다 작습니다.

또는 offsetbuffer의 길이보다 큽니다.

또는 size 가 0보다 작습니다.

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

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

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

또는

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

예제

다음 코드 예제에서는 데이터를 읽을 수 있는지 여부를 확인하는 데 사용합니다 DataAvailable . 데이터를 사용할 수 있는 경우 .에서 NetworkStream읽습니다.

// Examples for CanRead, Read, and DataAvailable.
// Check to see if this NetworkStream is readable.
if ( myNetworkStream->CanRead )
{
   array<Byte>^ myReadBuffer = gcnew array<Byte>(1024);
   String^ myCompleteMessage = "";
   int numberOfBytesRead = 0;
   
   // Incoming message may be larger than the buffer size.
   do
   {
      numberOfBytesRead = myNetworkStream->Read( myReadBuffer, 0,
         myReadBuffer->Length );
      myCompleteMessage = String::Concat( myCompleteMessage,
         Encoding::ASCII->GetString( myReadBuffer, 0, numberOfBytesRead ) );
   }
   while ( myNetworkStream->DataAvailable );
   
   // Print out the received message to the console.
   Console::WriteLine( "You received the following message : {0}",
      myCompleteMessage );
}
else
{
   Console::WriteLine( "Sorry.  You cannot read from this NetworkStream." );
}
// Examples for CanRead, Read, and DataAvailable.

// Check to see if this NetworkStream is readable.
if(myNetworkStream.CanRead){
    byte[] myReadBuffer = new byte[1024];
    StringBuilder myCompleteMessage = new StringBuilder();
    int numberOfBytesRead = 0;

    // Incoming message may be larger than the buffer size.
    do{
         numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);

         myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
    }
    while(myNetworkStream.DataAvailable);

    // Print out the received message to the console.
    Console.WriteLine("You received the following message : " +
                                 myCompleteMessage);
}
else{
     Console.WriteLine("Sorry.  You cannot read from this NetworkStream.");
}
' Examples for CanRead, Read, and DataAvailable.
' Check to see if this NetworkStream is readable.
If myNetworkStream.CanRead Then
   Dim myReadBuffer(1024) As Byte
       Dim myCompleteMessage As StringBuilder = New StringBuilder()
   Dim numberOfBytesRead As Integer = 0
   
   ' Incoming message may be larger than the buffer size.
   Do
      numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length)
           myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead))
   Loop While myNetworkStream.DataAvailable
   
   ' Print out the received message to the console.
       Console.WriteLine(("You received the following message : " + myCompleteMessage.ToString()))
Else
   Console.WriteLine("Sorry.  You cannot read from this NetworkStream.")
End If

설명

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

참고

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

참고

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

추가 정보

적용 대상