Socket.SetSocketOption メソッド

定義

Socket オプションを設定します。Sets a Socket option.

オーバーロード

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

指定した Socket オプションを、指定した Boolean 値に設定します。Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプションを、指定した値に設定します。この値はバイト配列で表されます。Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションを、指定した整数値に設定します。Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

指定した Socket オプションを、指定した値に設定します。この値はオブジェクトで表されます。Sets the specified Socket option to the specified value, represented as an object.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

指定した Socket オプションを、指定した Boolean 値に設定します。Sets the specified Socket option to the specified Boolean value.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, bool optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, bool optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * bool -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Boolean)

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。One of the SocketOptionLevel values.

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。One of the SocketOptionName values.

optionValue
Boolean

Boolean として表されるオプションの値。The value of the option, represented as a Boolean.

例外

Socket オブジェクトは閉じられています。The Socket object has been closed.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

次のコード例では、ソケットを開き、およびソケットオプションを有効にし DontLinger OutOfBandInline ます。The following code example opens a socket and enables the DontLinger and the OutOfBandInline socket options.

// Establish the local endpoint for the socket.
IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() );
IPAddress^ ipAddr = ipHost->AddressList[ 0 ];
IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 );

// Create a TCP socket.
Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );

// Connect the socket to the remote endpoint.
client->Connect( ipEndPoint );

// Set option that allows socket to close gracefully without lingering.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::DontLinger, true );

// Set option that allows socket to receive out-of-band information in the data stream.
client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::OutOfBandInline, true );

// Establish the local endpoint for the socket.
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress  ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);

// Create a TCP socket.
Socket client = new Socket(AddressFamily.InterNetwork,
    SocketType.Stream, ProtocolType.Tcp);

// Connect the socket to the remote endpoint.
client.Connect(ipEndPoint);

// Set option that allows socket to close gracefully without lingering.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true);

// Set option that allows socket to receive out-of-band information in the data stream.
client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.OutOfBandInline, true);

注釈

Socket オプションは、現在のの動作を決定 Socket します。Socket options determine the behavior of the current Socket. オプションを有効にする場合はに設定し、オプションを無効にする場合はに設定し optionValue true false ます。Set optionValue to true to enable the option, or to false to disable the option.

Socket オプションは、プロトコルサポートのレベルによってグループ化されます。Socket options are grouped by level of protocol support.

Socketこのオーバーロードを使用して設定できるさまざまなオプションを以下に示します。Listed below are the various Socket options that can be set using this overload. これらのオプションは、適切な値によってグループ化され SocketOptionLevel ます。These options are grouped by the appropriate SocketOptionLevel value. これらのオプションのいずれかを設定する場合は、パラメーターに適切な値を使用してください SocketOptionLevel optionLevelIf you intend to set any of these options, be sure to use the appropriate SocketOptionLevel value for the optionLevel parameter. 設定するオプションは、パラメーターに指定する必要があり optionName ます。The option you choose to set must be specified in the optionName parameter. 一覧表示されているいずれかのオプションの現在の値を取得する場合は、メソッドを使用し GetSocketOption ます。If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP このオーバーロードを使用して設定できるオプション。SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Udp options that can be set using this overload.

これらのオプションの詳細については、列挙体を参照してください SocketOptionNameFor more information on these options, refer to the SocketOptionName enumeration.

注意

例外が発生した場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException exception, 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.

適用対象

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプションを、指定した値に設定します。この値はバイト配列で表されます。Sets the specified Socket option to the specified value, represented as a byte array.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。One of the SocketOptionLevel values.

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。One of the SocketOptionName values.

optionValue
Byte[]

オプションの値を表す Byte 型の配列。An array of type Byte that represents the value of the option.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

次のコード例では、とのタイムアウト値を設定し LingerOption Send ます。The following code example sets the LingerOption and Send time-out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

注釈

Socket オプションは、現在のの動作を決定 Socket します。Socket options determine the behavior of the current Socket. このオーバーロードを使用し Socket て、バイト配列を必要とするオプションをオプション値として設定します。Use this overload to set those Socket options that require a byte array as an option value.

注意

を受け取った場合は、プロパティを使用して、 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 member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションを、指定した整数値に設定します。Sets the specified Socket option to the specified integer value.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Integer)

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。One of the SocketOptionLevel values.

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。One of the SocketOptionName values.

optionValue
Int32

オプションの値。A value of the option.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

次のコード例では、とのタイムアウト値を設定し LingerOption Send ます。The following code example sets the LingerOption and Send time-out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

注釈

Socket オプションは、現在のの動作を決定 Socket します。Socket options determine the behavior of the current Socket. データ型のオプションの場合は、0以外の値を指定してオプションを有効にし、ゼロの値を指定して Boolean オプションを無効にします。For an option with a Boolean data type, specify a nonzero value to enable the option, and a zero value to disable the option. 整数データ型のオプションの場合は、適切な値を指定します。For an option with an integer data type, specify the appropriate value. Socket オプションは、プロトコルサポートのレベルによってグループ化されます。Socket options are grouped by level of protocol support.

Socketこのオーバーロードを使用して設定できるさまざまなオプションを以下に示します。Listed below are the various Socket options that can be set using this overload. これらのオプションは、適切なでグループ化され SocketOptionLevel ます。These options are grouped by the appropriate SocketOptionLevel. これらのオプションのいずれかを設定する場合は、パラメーターに適切なを使用してください SocketOptionLevel optionLevelIf you intend to set any of these options, be sure to use the appropriate SocketOptionLevel for the optionLevel parameter. 設定するオプションは、パラメーターに指定する必要があり optionName ます。The option you choose to set must be specified in the optionName parameter. 一覧表示されているいずれかのオプションの現在の値を取得する場合は、メソッドを使用し GetSocketOption ます。If you want to get the current value of any of the options listed, use the GetSocketOption method.

SocketOptionLevel.Socket このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Socket options that can be set using this overload.

SocketOptionLevel.IP このオーバーロードを使用して設定できるオプション。SocketOptionLevel.IP options that can be set using this overload.

SocketOptionLevel.Tcp このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Tcp options that can be set using this overload.

SocketOptionLevel.Udp このオーバーロードを使用して設定できるオプション。SocketOptionLevel.Udp options that can be set using this overload.

SocketOptionLevel.IPv6 このオーバーロードを使用して設定できるオプション。SocketOptionLevel.IPv6 options that can be set using this overload.

これらのオプションの詳細については、列挙体を参照してください SocketOptionNameFor more information about these options, refer to the SocketOptionName enumeration.

注意

を受け取った場合は、プロパティを使用して、 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 member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

指定した Socket オプションを、指定した値に設定します。この値はオブジェクトで表されます。Sets the specified Socket option to the specified value, represented as an object.

public:
 void SetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, System::Object ^ optionValue);
public void SetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, object optionValue);
member this.SetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * obj -> unit
Public Sub SetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Object)

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。One of the SocketOptionLevel values.

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。One of the SocketOptionName values.

optionValue
Object

オプションの値を格納する LingerOption または MulticastOptionA LingerOption or MulticastOption that contains the value of the option.

例外

optionValuenullです。optionValue is null.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

次のコード例では、とのタイムアウト値を設定し LingerOption Send ます。The following code example sets the LingerOption and Send time out values.

// Specifies that send operations will time-out 
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 );

// Specifies that the Socket will linger for 10 seconds after Close is called.
LingerOption^ lingerOption = gcnew LingerOption( true,10 );

s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption );
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);

// The socket will linger for 10 seconds after Socket.Close is called.
LingerOption lingerOption = new LingerOption (true, 10);

s.SetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);

'Send operations will time-out if confirmation is 
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)

' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)

注釈

Socket オプションは、現在のの動作を決定 Socket します。Socket options determine the behavior of the current Socket. 、、およびの各オプションを設定するには、このオーバーロードを使用し Linger AddMembership DropMembership Socket ます。Use this overload to set the Linger, AddMembership, and DropMembershipSocket options. オプションには、 Linger パラメーターにを使用し Socket optionLevel ます。For the Linger option, use Socket for the optionLevel parameter. AddMembershipDropMembership では、を使用 IP します。For AddMembership and DropMembership, use IP. 上記のいずれかのオプションの現在の値を取得する場合は、メソッドを使用し GetSocketOption ます。If you want to get the current value of any of the options listed above, use the GetSocketOption 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.

こちらもご覧ください

適用対象