다음을 통해 공유


Socket.Poll 메서드

정의

오버로드

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가 호출되고 연결이 보류 중이거나, 데이터를 읽을 수 있거나, 연결이 닫혔거나, 다시 설정되거나, 종료된 경우 를 반환 trueListen() 합니다.
  • 의 경우 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가 호출되고 연결이 보류 중이거나, 데이터를 읽을 수 있거나, 연결이 닫혔거나, 다시 설정되거나, 종료된 경우 를 반환 trueListen() 합니다.
  • 의 경우 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 네트워크 추적을 참조하세요.

추가 정보

적용 대상