Socket.SetSocketOptionとは? わかりやすく解説

Socket.SetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションを、指定した値に設定します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Sub SetSocketOption ( _
    optionLevel As SocketOptionLevel, _
    optionName As SocketOptionName, _
    optionValue As Integer _
)
Dim instance As Socket
Dim optionLevel As SocketOptionLevel
Dim optionName As SocketOptionName
Dim optionValue As Integer

instance.SetSocketOption(optionLevel, optionName, optionValue)
public void SetSocketOption (
    SocketOptionLevel optionLevel,
    SocketOptionName optionName,
    int optionValue
)
public:
void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    int optionValue
)
public void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    int optionValue
)
public function SetSocketOption (
    optionLevel : SocketOptionLevel, 
    optionName : SocketOptionName, 
    optionValue : int
)

パラメータ

optionLevel

SocketOptionLevel 値の 1 つ。

optionName

SocketOptionName 値の 1 つ。

optionValue

オプションの値。

例外例外
解説解説

Socket オプションは、現在の Socket の動作を決定します。Boolean データ型のオプションの場合は、0 以外の値を指定するとオプションが有効になり、0 を指定するとオプションが無効になります。整数型のオプションの場合は、適切な値を指定します。Socket オプションはプロトコル サポートのレベルによってグループ化されています。

このオーバーロードを使用して設定できるさまざまな Socket オプションを次に示します。これらのオプションは適切な SocketOptionLevel によってグループ化されます。これらのオプションのいずれかを設定する場合、適切な SocketOptionLevel を optionLevel パラメータに使用してください。設定するオプションは、optionName パラメータで指定する必要があります。これらのオプションの現在の値を取得するには、GetSocketOption メソッドを使用します。

このオーバーロードを使用して設定できる SocketOptionLevel.Socket オプション。

このオーバーロードを使用して設定できる SocketOptionLevel.IP オプション。

  • HeaderIncluded

  • IPOptions

  • IpTimeToLive

  • MulticastInterface

  • MulticastLoopback

  • MulticastTimeToLive

  • TypeOfService

  • UseLoopback

このオーバーロードを使用して設定できる SocketOptionLevel.Tcp オプション。

このオーバーロードを使用して設定できる SocketOptionLevel.Udp オプション。

  • ChecksumCoverage

  • NoChecksum

このオーバーロードを使用して設定できる SocketOptionLevel.IPv6 オプション。

これらのオプションの詳細については、SocketOptionName 列挙体のトピックを参照してください。

メモメモ

SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

Windows 98, Windows NT 4.0 プラットフォームメモ : optionName パラメータとして AddMembership を使用する前に、Bind メソッドを呼び出す必要があります。

使用例使用例

LingerOption タイムアウト値と Send タイムアウト値を設定するコード例を次に示します。

'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)

// 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);

// 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);
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
SocketOptionName
SocketOptionLevel
GetSocketOption

Socket.SetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Boolean)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

指定した Socket オプションを、指定した Boolean 値に設定します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Sub SetSocketOption ( _
    optionLevel As SocketOptionLevel, _
    optionName As SocketOptionName, _
    optionValue As Boolean _
)
Dim instance As Socket
Dim optionLevel As SocketOptionLevel
Dim optionName As SocketOptionName
Dim optionValue As Boolean

instance.SetSocketOption(optionLevel, optionName, optionValue)
public void SetSocketOption (
    SocketOptionLevel optionLevel,
    SocketOptionName optionName,
    bool optionValue
)
public:
void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    bool optionValue
)
public void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    boolean optionValue
)
public function SetSocketOption (
    optionLevel : SocketOptionLevel, 
    optionName : SocketOptionName, 
    optionValue : boolean
)

パラメータ

optionLevel

SocketOptionLevel 値の 1 つ。

optionName

SocketOptionName 値の 1 つ。

optionValue

Boolean として表されるオプションの値。

例外例外
解説解説

Socket オプションは、現在の Socket の動作を決定します。optionValue を true に設定してオプションを有効にするか、false に設定してオプションを無効にします。

Socket オプションは、プロトコル サポートのレベルによってグループ化されます。

このオーバーロードを使用して設定できるさまざまな Socket オプションを次に示します。これらのオプションは適切な SocketOptionLevel 値によってグループ化されます。これらのオプションのいずれかを設定する場合、適切な SocketOptionLevel 値を optionLevel パラメータに使用してください。設定するオプションは、optionName パラメータで指定する必要があります。これらのオプションの現在の値を取得するには、GetSocketOption メソッドを使用します。

このオーバーロードを使用して設定できる SocketOptionLevel.Socket オプション。

このオーバーロードを使用して設定できる SocketOptionLevel.IP オプション。

  • HeaderIncluded

  • MulticastLoopback

  • UseLoopback

このオーバーロードを使用して設定できる SocketOptionLevel.Tcp オプション。

このオーバーロードを使用して設定できる SocketOptionLevel.Udp オプション。

  • NoChecksum

これらのオプションの詳細については、SocketOptionName 列挙体のトピックを参照してください。

メモメモ

SocketException 例外が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルからエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

使用例使用例

ソケットを開いて、DontLinger ソケット オプションと OutOfBandInline ソケット オプションを有効にするコード例を次に示します。

// Establish the local endpoint for the socket.
IPHostEntry ipHost = Dns.Resolve(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.SetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Object)

指定した Socket オプションを、指定した値に設定します。この値はオブジェクトで表されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Sub SetSocketOption ( _
    optionLevel As SocketOptionLevel, _
    optionName As SocketOptionName, _
    optionValue As Object _
)
Dim instance As Socket
Dim optionLevel As SocketOptionLevel
Dim optionName As SocketOptionName
Dim optionValue As Object

instance.SetSocketOption(optionLevel, optionName, optionValue)
public void SetSocketOption (
    SocketOptionLevel optionLevel,
    SocketOptionName optionName,
    Object optionValue
)
public:
void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    Object^ optionValue
)
public void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    Object optionValue
)
public function SetSocketOption (
    optionLevel : SocketOptionLevel, 
    optionName : SocketOptionName, 
    optionValue : Object
)

パラメータ

optionLevel

SocketOptionLevel 値の 1 つ。

optionName

SocketOptionName 値の 1 つ。

optionValue

オプションの値を格納する LingerOption または MulticastOption。

例外例外
例外の種類条件

ArgumentNullException

optionValue が null 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

Socket は閉じられています。

解説解説
使用例使用例

LingerOption タイムアウト値と Send タイムアウト値を設定するコード例を次に示します。

'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)

// 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);

// 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);
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
SocketOptionName
SocketOptionLevel
GetSocketOption

Socket.SetSocketOption メソッド

Socket オプションを設定します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
Socket.SetSocketOption (SocketOptionLevel, SocketOptionName, Boolean) 指定した Socket オプションを、指定した Boolean 値に設定します。
Socket.SetSocketOption (SocketOptionLevel, SocketOptionName, Byte[]) 指定した Socket オプションを、指定した値に設定します。この値はバイト配列で表されます。

.NET Compact Framework によってサポートされています。

Socket.SetSocketOption (SocketOptionLevel, SocketOptionName, Int32) 指定した Socket オプションを、指定した値に設定します。

.NET Compact Framework によってサポートされています。

Socket.SetSocketOption (SocketOptionLevel, SocketOptionName, Object) 指定した Socket オプションを、指定した値に設定します。この値はオブジェクトで表されます。

.NET Compact Framework によってサポートされています。

参照参照

関連項目

Socket クラス
Socket メンバ
System.Net.Sockets 名前空間

Socket.SetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプションを、指定した値に設定します。この値はバイト配列で表されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Sub SetSocketOption ( _
    optionLevel As SocketOptionLevel, _
    optionName As SocketOptionName, _
    optionValue As Byte() _
)
Dim instance As Socket
Dim optionLevel As SocketOptionLevel
Dim optionName As SocketOptionName
Dim optionValue As Byte()

instance.SetSocketOption(optionLevel, optionName, optionValue)
public void SetSocketOption (
    SocketOptionLevel optionLevel,
    SocketOptionName optionName,
    byte[] optionValue
)
public:
void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    array<unsigned char>^ optionValue
)
public void SetSocketOption (
    SocketOptionLevel optionLevel, 
    SocketOptionName optionName, 
    byte[] optionValue
)
public function SetSocketOption (
    optionLevel : SocketOptionLevel, 
    optionName : SocketOptionName, 
    optionValue : byte[]
)

パラメータ

optionLevel

SocketOptionLevel 値の 1 つ。

optionName

SocketOptionName 値の 1 つ。

optionValue

オプションの値を表す Byte 型の配列。

例外例外
解説解説
使用例使用例

LingerOption タイムアウト値と Send タイムアウト値を設定するコード例を次に示します。

'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)

// 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);

// 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);
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
SocketOptionName
SocketOptionLevel
GetSocketOption



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「Socket.SetSocketOption」の関連用語

Socket.SetSocketOptionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Socket.SetSocketOptionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS