Socket.Poll メソッド

定義

オーバーロード

Poll(TimeSpan, SelectMode)

Socket の状態を確認します。

Poll(Int32, SelectMode)

Socket の状態を確認します。

Poll(TimeSpan, SelectMode)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
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 値のいずれか 1 つ。

戻り値

mode パラメーターで渡されるポーリング モードの値に基づいた Socket の状態。 trueが期限切れになる前に次のいずれかの条件が発生した場合は をtimeout返します。それ以外の場合は をfalse返します。

  • SelectRead場合は、 が呼び出され、接続が保留中の場合Listen()、データを読み取り可能な場合、または接続が閉じているか、リセットされたか、または終了したかが返trueされます。
  • の場合SelectWrite、 を処理Connectし、接続が成功した場合、またはデータを送信できる場合は が返trueされます。
  • SelectError場合は、ブロックされていない を処理Connectして接続が失敗した場合、または が設定されておらず、帯域外データが使用可能な場合OutOfBandInlineは が返trueされます。
  • それ以外の場合は、 falseを返します。

例外

timeout が -1 ミリ秒未満またはミリ秒を超 MaxValue えています。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

適用対象

Poll(Int32, SelectMode)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
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 値のいずれか 1 つ。

戻り値

mode パラメーターで渡されるポーリング モードの値に基づいた Socket の状態。

  • SelectRead場合は、 が呼び出され、接続が保留中の場合Listen()、データを読み取り可能な場合、または接続が閉じているか、リセットされたか、または終了したかが返trueされます。
  • の場合SelectWrite、 を処理Connectし、接続が成功した場合、またはデータを送信できる場合は が返trueされます。
  • SelectError場合は、ブロックされていない を処理Connectして接続が失敗した場合、または が設定されておらず、帯域外データが使用可能な場合OutOfBandInlineは が返trueされます。
  • それ以外の場合は、 falseを返します。

例外

mode パラメーターが、SelectMode 値の 1 つではありません。

ソケットへのアクセスを試行しているときにエラーが発生しました。 以下の解説を参照してください。

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使用することをお勧めします。

Note

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

Note

この方法では、ネットワーク ケーブルの破損やリモート ホストが正常にシャットダウンされたなど、特定の種類の接続の問題を検出できません。 これらの種類のエラーを検出するには、データの送受信を試みる必要があります。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

こちらもご覧ください

適用対象