Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Socket.Poll(Int32, SelectMode) Method

定義

Socket の状態を確認します。Determines the status of the 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 Int32 Int32 Int32

マイクロ秒単位の待機時間。The time to wait for a response, in microseconds.

mode
SelectMode SelectMode SelectMode SelectMode

SelectMode 値のいずれか。One of the SelectMode values.

戻り値

mode パラメーターで渡されるポーリング モードの値に基づいた Socket の状態。The status of the Socket based on the polling mode value passed in the mode parameter.

モードMode 戻り値Return Value
SelectReadListen(Int32) が呼び出されており、接続が保留中の場合は truetrue if Listen(Int32) has been called and a connection is pending; または-or- データを読み取ることができる場合は truetrue if data is available for reading; または-or- 接続が閉じている、リセットされている、または終了している場合は truetrue if the connection has been closed, reset, or terminated; それ以外の場合、false を返します。otherwise, returns false.
SelectWriteConnect(EndPoint) を処理し、接続に成功した場合は truetrue, if processing a Connect(EndPoint), and the connection has succeeded; または-or- データを送信できる場合は truetrue if data can be sent; それ以外の場合、false を返します。otherwise, returns false.
SelectErrorブロックしない Connect(EndPoint) を処理し、接続に失敗した場合は truetrue if processing a Connect(EndPoint) that does not block, and the connection has failed; または-or- OutOfBandInline が設定されておらず、帯域外データを使用できる場合は truetrue if OutOfBandInline is not set and out-of-band data is available; それ以外の場合、false を返します。otherwise, returns false.

例外

mode パラメーターが、SelectMode 値の 1 つではありません。The mode parameter is not one of the SelectMode values.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket. 以下の解説を参照してください。See remarks below.

次のコード例は、ソケットを作成、サーバーに接続し、使用Pollソケットの状態を確認します。The following code example creates a socket, connects to a server, and uses Poll to check the status of the socket.

//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します。The Poll method will check the state of the Socket. 指定SelectMode.SelectReadselectModeパラメーターかどうかをSocketを読み取ることができます。Specify SelectMode.SelectRead for the selectMode parameter to determine if the Socket is readable. 指定SelectMode.SelectWriteどうかを判断、Socketが書き込み可能です。Specify SelectMode.SelectWrite to determine if the Socket is writable. 使用SelectMode.SelectErrorエラー状態を検出します。Use SelectMode.SelectError to detect an error condition. Poll 単位で指定された期間までの実行がブロックされますmicrosecondsが経過するとします。Poll will block execution until the specified time period, measured in microseconds, elapses. 設定、microSecondsパラメーターを負の整数の応答を無期限に待機したい場合。Set the microSeconds parameter to a negative integer if you would like to wait indefinitely for a response. 複数のソケットの状態を確認する場合を使いたい場合があります、Selectメソッド。If you want to check the status of multiple sockets, you might prefer to use the Select method.

注意

表示された場合、SocketExceptionを使用して、SocketException.ErrorCode特定のエラー コードを取得するプロパティ。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得した後を参照してください、 Windows Sockets version 2 API エラー コードエラーの詳細な説明のドキュメント。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメソッドは、切断されたネットワーク ケーブルなどの接続に関する問題の特定の種類を検出できないこと、またはリモート ホストが異常停止されました。This method cannot detect certain kinds of connection problems, such as a broken network cable, or that the remote host was shut down ungracefully. この種のエラーを検出するためにデータ送信または受信しようとする必要があります。You must attempt to send or receive data to detect these kinds of errors.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、次を参照してください。ネットワークのトレースを .NET Framework でします。For more information, see Network Tracing in the .NET Framework.

適用対象

こちらもご覧ください