Socket.SetSocketOption メソッド

定義

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

オーバーロード

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

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

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

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, 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 値のいずれか。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.

次のコード例では、LingerOptionSend のタイムアウト値を設定します。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. このオーバーロードを使用して、LingerAddMembership、および DropMembershipSocket オプションを設定します。Use this overload to set the Linger, AddMembership, and DropMembershipSocket options. Linger オプションでは、optionLevel パラメーターに Socket を使用します。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.

こちらもご覧ください

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 値のいずれか。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.

次のコード例では、LingerOptionSend のタイムアウト値を設定します。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. Boolean データ型のオプションの場合は、0以外の値を指定してオプションを有効にし、ゼロの値を指定してオプションを無効にします。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. これらのオプションのいずれかを設定する場合は、optionLevel パラメーターに適切な SocketOptionLevel を使用するようにしてください。If 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.

これらのオプションの詳細については、SocketOptionName 列挙体を参照してください。For 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, 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 値のいずれか。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.

次のコード例では、ソケットを開き、DontLingerOutOfBandInline ソケットオプションを有効にします。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. オプションを有効にする場合は optionValuetrue に設定し、オプションを無効にする場合は 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. これらのオプションのいずれかを設定する場合は、必ず、optionLevel パラメーターに適切な SocketOptionLevel 値を使用してください。If 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.

これらのオプションの詳細については、SocketOptionName 列挙体を参照してください。For 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.

次のコード例では、LingerOptionSend のタイムアウト値を設定します。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.

こちらもご覧ください

適用対象