다음을 통해 공유


Socket.Available 속성

정의

네트워크에서 받아서 읽을 수 있는 데이터의 양을 가져옵니다.

public:
 property int Available { int get(); };
public int Available { get; }
member this.Available : int
Public ReadOnly Property Available As Integer

속성 값

네트워크에서 받아서 읽을 수 있는 데이터의 바이트 수입니다.

예외

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

예제

다음 코드 예제에서는 IOControl을 호출한 결과와 FIONREAD 및 Available 속성을 비교합니다.

// FIONREAD is also available as the "Available" property.
const int FIONREAD = 0x4004667F;

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( FIONREAD, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::WriteLine( "server has {0} bytes pending. Available property says {1}.",
      bytesAvailable, s->Available );

   return;
}
 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);

     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);

     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);

     return;
 }

설명

비블로킹 SocketAvailable 을 사용하는 경우 를 호출Receive하기 전에 데이터를 읽기 위해 대기 중인지 여부를 확인하는 좋은 방법입니다. 사용 가능한 데이터는 읽기 위해 네트워크 버퍼에 대기 중인 총 데이터 양입니다. 네트워크 버퍼 Available 에 대기 중인 데이터가 없으면 는 0을 반환합니다.

원격 호스트가 연결을 종료하거나 닫는 경우 는 Available 을 throw할 SocketException수 있습니다. 을 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

적용 대상

추가 정보