Socket.IOControl メソッド

定義

Socket の下位操作モードを設定します。

オーバーロード

IOControl(Int32, Byte[], Byte[])

数値制御コードを使用して、Socket の下位操作モードを設定します。

IOControl(IOControlCode, Byte[], Byte[])

IOControlCode 列挙型を使用して制御コードを指定し、Socket の下位操作モードを設定します。

IOControl(Int32, Byte[], Byte[])

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

数値制御コードを使用して、Socket の下位操作モードを設定します。

public:
 int IOControl(int ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl (int ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl (int ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : int * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As Integer, optionInValue As Byte(), optionOutValue As Byte()) As Integer

パラメーター

ioControlCode
Int32

実行する操作の制御コードを指定する Int32 値。

optionInValue
Byte[]

操作に必要な入力データを格納する Byte 配列。

optionOutValue
Byte[]

操作によって返された出力データを格納する Byte 配列。

戻り値

optionOutValue パラメーターのバイト数。

例外

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

Socket が閉じられました。

Blocking プロパティを使用せずに、ブロッキング モードを変更しようとしました。

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。

次のコード例では、FIONREAD と Available プロパティの結果を比較します。

// FIONREAD is also available as the "Available" property.
const int FIONREAD = 0x4004667F;

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( FIONREAD, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::WriteLine( "server has {0} bytes pending. Available property says {1}.",
      bytesAvailable, s->Available );

   return;
}
 // FIONREAD is also available as the "Available" property.
public const int FIONREAD   = 0x4004667F;

static void DisplayPendingByteCount(Socket s)
 {
     byte[] outValue = BitConverter.GetBytes(0);

     // Check how many bytes have been received.
     s.IOControl(FIONREAD, null, outValue);

     uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
     Console.WriteLine("server has {0} bytes pending. Available property says {1}.",
         bytesAvailable, s.Available);

     return;
 }

注釈

メソッドは IOControl 、 クラスの現在のインスタンスの基になるオペレーティング システム Socket への低レベルのアクセスを Socket 提供します。 詳細については、 WSAIoctl のドキュメントを参照してください。

注意

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

Note

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

適用対象

IOControl(IOControlCode, Byte[], Byte[])

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

IOControlCode 列挙型を使用して制御コードを指定し、Socket の下位操作モードを設定します。

public:
 int IOControl(System::Net::Sockets::IOControlCode ioControlCode, cli::array <System::Byte> ^ optionInValue, cli::array <System::Byte> ^ optionOutValue);
public int IOControl (System.Net.Sockets.IOControlCode ioControlCode, byte[]? optionInValue, byte[]? optionOutValue);
public int IOControl (System.Net.Sockets.IOControlCode ioControlCode, byte[] optionInValue, byte[] optionOutValue);
member this.IOControl : System.Net.Sockets.IOControlCode * byte[] * byte[] -> int
Public Function IOControl (ioControlCode As IOControlCode, optionInValue As Byte(), optionOutValue As Byte()) As Integer

パラメーター

ioControlCode
IOControlCode

実行する操作の制御コードを指定する IOControlCode 値。

optionInValue
Byte[]

操作に必要な入力データを格納する Byte 型の配列。

optionOutValue
Byte[]

操作によって返された出力データを格納する Byte 型の配列。

戻り値

optionOutValue パラメーターのバイト数。

例外

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

Socket が閉じられました。

Blocking プロパティを使用せずに、ブロッキング モードを変更しようとしました。

次のコード例では、 と プロパティを呼び出したIOControlDataToRead結果をAvailable比較します。

void DisplayPendingByteCount( Socket^ s )
{
   array<Byte>^ outValue = BitConverter::GetBytes( 0 );
   
   // Check how many bytes have been received.
   s->IOControl( IOControlCode::DataToRead, nullptr, outValue );

   UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 );
   Console::Write( "server has {0} bytes pending,",
      bytesAvailable );
   Console::WriteLine( "Available property says {1}.",
      s->Available );
   return;
}
static void DisplayPendingByteCount(Socket s)
{
    byte[] outValue = BitConverter.GetBytes(0);

    // Check how many bytes have been received.
    s.IOControl(IOControlCode.DataToRead, null, outValue);

    uint bytesAvailable = BitConverter.ToUInt32(outValue, 0);
    Console.Write("server has {0} bytes pending. ",
        bytesAvailable);
    Console.WriteLine("Available property says {1}.",
                     s.Available);

    return;
}

注釈

このメソッドは、 クラスの現在のインスタンスの基になるオペレーティング システム Socket への低レベルのアクセスを Socket 提供します。 詳細については、 WSAIoctl のドキュメントを参照してください。

注意

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

Note

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

適用対象