Socket.Poll 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
Poll(TimeSpan, SelectMode) |
Socket의 상태를 결정합니다. |
Poll(Int32, SelectMode) |
Socket의 상태를 결정합니다. |
Poll(TimeSpan, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Socket의 상태를 결정합니다.
public:
bool Poll(TimeSpan timeout, System::Net::Sockets::SelectMode mode);
public bool Poll (TimeSpan timeout, System.Net.Sockets.SelectMode mode);
member this.Poll : TimeSpan * System.Net.Sockets.SelectMode -> bool
Public Function Poll (timeout As TimeSpan, mode As SelectMode) As Boolean
매개 변수
- timeout
- TimeSpan
응답을 기다리는 시간입니다.
- mode
- SelectMode
SelectMode 값 중 하나입니다.
반환
mode
매개 변수에 전달된 폴링 모드 값에 따른 Socket의 상태입니다. 가 만료되기 전에 다음 조건이 발생하면 를 timeout
반환하고, false
그렇지 않으면 를 반환 true
합니다.
- 의 경우 SelectRead가 호출되고 연결이 보류 중이거나, 데이터를 읽을 수 있거나, 연결이 닫혔거나, 다시 설정되거나, 종료된 경우 를 반환
true
Listen() 합니다. - 의 경우 SelectWrite를 처리 Connect 하고 연결이 성공했는지 또는 데이터를 보낼 수 있는지를 반환
true
합니다. - 의 경우 SelectError차단되지 않고 연결이 실패한 를 처리 Connect 하거나 가 설정되지 않고 대역 외 데이터를 사용할 수 있는 경우 OutOfBandInline 를 반환
true
합니다. - 그 외의 경우
false
를 반환합니다.
예외
timeout
가 -1밀리초 미만이거나 밀리초보다 MaxValue 큽니다.
소켓에 액세스하는 동안 오류가 발생했습니다.
Socket이 닫혔습니다.
적용 대상
Poll(Int32, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Socket의 상태를 결정합니다.
public:
bool Poll(int microSeconds, System::Net::Sockets::SelectMode mode);
public bool Poll (int microSeconds, System.Net.Sockets.SelectMode mode);
member this.Poll : int * System.Net.Sockets.SelectMode -> bool
Public Function Poll (microSeconds As Integer, mode As SelectMode) As Boolean
매개 변수
- microSeconds
- Int32
응답을 기다릴 시간(마이크로초)입니다.
- mode
- SelectMode
SelectMode 값 중 하나입니다.
반환
mode
매개 변수에 전달된 폴링 모드 값에 따른 Socket의 상태입니다.
- 의 경우 SelectRead가 호출되고 연결이 보류 중이거나, 데이터를 읽을 수 있거나, 연결이 닫혔거나, 다시 설정되거나, 종료된 경우 를 반환
true
Listen() 합니다. - 의 경우 SelectWrite를 처리 Connect 하고 연결이 성공했는지 또는 데이터를 보낼 수 있는지를 반환
true
합니다. - 의 경우 SelectError차단되지 않고 연결이 실패한 를 처리 Connect 하거나 가 설정되지 않고 대역 외 데이터를 사용할 수 있는 경우 OutOfBandInline 를 반환
true
합니다. - 그 외의 경우
false
를 반환합니다.
예외
mode
매개 변수가 SelectMode 값이 아닌 경우
소켓에 액세스하는 동안 오류가 발생했습니다. 아래 설명 부분을 참조하세요.
Socket이 닫혔습니다.
예제
다음 코드 예제에서는 소켓을 만들고, 서버에 연결하고, 를 사용하여 Poll 소켓의 상태 검사.
//Creates the Socket for sending data over TCP.
Socket^ s = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream,
ProtocolType::Tcp );
// Connects to host using IPEndPoint.
s->Connect( EPhost );
if ( !s->Connected )
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if ( s->Poll( -1, SelectMode::SelectWrite ) )
{
Console::WriteLine( "This Socket is writable." );
}
else if ( s->Poll( -1, SelectMode::SelectRead ) )
{
Console::WriteLine( "This Socket is readable." );
}
else if ( s->Poll( -1, SelectMode::SelectError ) )
{
Console::WriteLine( "This Socket has an error." );
}
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp );
// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if(s.Poll(-1, SelectMode.SelectWrite)){
Console.WriteLine("This Socket is writable.");
}
else if (s.Poll(-1, SelectMode.SelectRead)){
Console.WriteLine("This Socket is readable." );
}
else if (s.Poll(-1, SelectMode.SelectError)){
Console.WriteLine("This Socket has an error.");
}
'Creates the Socket for sending data over TCP.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
Console.WriteLine("This Socket is writable.")
Else
If s.Poll(- 1, SelectMode.SelectRead) Then
Console.WriteLine(("This Socket is readable. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
End If
설명
메서드는 Poll 의 상태를 확인합니다 Socket. 매개 변수에 selectMode
를 지정 SelectMode.SelectRead 하여 가 Socket 읽을 수 있는지 확인합니다. 를 지정 SelectMode.SelectWrite 하여 를 Socket 쓸 수 있는지 확인합니다. 를 사용하여 SelectMode.SelectError 오류 조건을 검색합니다.
Poll 는 에서 측정 microseconds
된 지정된 기간, 경과 또는 데이터를 사용할 수 있을 때까지 실행을 차단합니다.
microSeconds
응답을 무기한 대기하려면 매개 변수를 음수 정수로 설정합니다. 여러 소켓의 상태 검사 경우 메서드를 Select 사용하는 것이 좋습니다.
참고
을 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.
참고
이 메서드는 네트워크 케이블이 끊어졌거나 원격 호스트가 비정상적으로 종료된 것과 같은 특정 종류의 연결 문제를 검색할 수 없습니다. 이러한 종류의 오류를 감지하려면 데이터를 보내거나 받아야 합니다.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
적용 대상
.NET