Socket.Available 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
네트워크에서 받아서 읽을 수 있는 데이터의 양을 가져옵니다.
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 네트워크 추적을 참조하세요.
적용 대상
추가 정보
.NET