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使用することをお勧めします。
Note
を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。
Note
この方法では、ネットワーク ケーブルの破損やリモート ホストが正常にシャットダウンされたなど、特定の種類の接続の問題を検出できません。 これらの種類のエラーを検出するには、データの送受信を試みる必要があります。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
こちらもご覧ください
適用対象
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示