Socket.Poll メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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使用することをお勧めしています。
注意
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については 、Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。
注意
この方法では、ネットワーク ケーブルの破損やリモート ホストが正常にシャットダウンされたなど、特定の種類の接続の問題を検出できません。 これらの種類のエラーを検出するには、データの送受信を試みる必要があります。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
適用対象
.NET