Socket.GetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Byte[])
アセンブリ: System (system.dll 内)

Public Sub GetSocketOption ( _ 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.GetSocketOption(optionLevel, optionName, optionValue)
public void GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue )
public: void GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, array<unsigned char>^ optionValue )
public void GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue )
public function GetSocketOption ( optionLevel : SocketOptionLevel, optionName : SocketOptionName, optionValue : byte[] )
- optionLevel
SocketOptionLevel 値の 1 つ。
- optionName
SocketOptionName 値の 1 つ。


Socket オプションは、現在の Socket の動作を決定します。このメソッドが正常に完了すると、optionValue パラメータで指定した配列には、指定した Socket オプションの値が格納されます。
optionValue 配列の長さが、指定した Socket オプションの値を格納するために必要なバイト数より短い場合、GetSocketOption は SocketException をスローします。SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。このオーバーロードは、ブール値または整数値で表されたソケットに対して使用します。
![]() |
---|
このメンバは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。詳細については、「ネットワークのトレース」を参照してください。 |

LingerOption タイムアウト値と Send タイムアウト値を取得し、コンソールに表示するコード例を次に示します。
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)))) ' blocks until send returns Dim i As Integer = s.Send(msg) ' blocks until read returns Dim bytes(1024) As Byte s.Receive(bytes) 'Display to the screen Console.WriteLine(Encoding.ASCII.GetString(bytes)) s.Shutdown(SocketShutdown.Both) Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString())) s.Close() End Sub 'SetSocketOptions
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send (msg); // blocks until read returns byte[] bytes = new byte[1024]; s.Receive (bytes); //Display to the screen Console.WriteLine (Encoding.ASCII.GetString (bytes)); s.Shutdown (SocketShutdown.Both); Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ()); s.Close ();
Console::Write( "This application will timeout if Send does not return within " ); Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) ); // Blocks until send returns. int i = s->Send( msg ); // Blocks until read returns. array<Byte>^ bytes = gcnew array<Byte>(1024); s->Receive( bytes ); //Displays to the screen. Console::WriteLine( Encoding::ASCII->GetString( bytes ) ); s->Shutdown( SocketShutdown::Both ); Console::Write( "If data remains to be sent, this application will stay open for " ); Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() ); s->Close();
Console.WriteLine("This application will timeout if Send does not " + "return within " + Encoding.get_ASCII().GetString(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send(msg); // blocks until read returns ubyte bytes[] = new ubyte[1024]; s.Receive(bytes); //Display to the screen Console.WriteLine(Encoding.get_ASCII().GetString(bytes)); s.Shutdown(SocketShutdown.Both); Console.WriteLine("If data remains to be sent, this application " + "will stay open for " + ((LingerOption)(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger))).get_LingerTime()); s.Close(); } //SetSocketOptions

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Socket.GetSocketOption メソッド (SocketOptionLevel, SocketOptionName, Int32)
アセンブリ: System (system.dll 内)

Public Function GetSocketOption ( _ optionLevel As SocketOptionLevel, _ optionName As SocketOptionName, _ optionLength As Integer _ ) As Byte()
Dim instance As Socket Dim optionLevel As SocketOptionLevel Dim optionName As SocketOptionName Dim optionLength As Integer Dim returnValue As Byte() returnValue = instance.GetSocketOption(optionLevel, optionName, optionLength)
public byte[] GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength )
public: array<unsigned char>^ GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength )
public byte[] GetSocketOption ( SocketOptionLevel optionLevel, SocketOptionName optionName, int optionLength )
public function GetSocketOption ( optionLevel : SocketOptionLevel, optionName : SocketOptionName, optionLength : int ) : byte[]
- optionLevel
SocketOptionLevel 値の 1 つ。
- optionName
SocketOptionName 値の 1 つ。
ソケット オプションの値を格納している Byte 型の配列。


optionLength パラメータは返されるバイト配列の最大サイズを設定します。オブション値が要求するバイト数が小さい場合、配列はそのバイト数だけを格納します。オプション値がより大きなバイト数を要求している場合、GetSocketOption は SocketException をスローします。このオーバーロードは、ブール値または整数値で表されたソケットに対して使用します。
![]() |
---|
SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。 |

LingerOption タイムアウト値と Send タイムアウト値を取得し、コンソールに表示するコード例を次に示します。
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)))) ' blocks until send returns Dim i As Integer = s.Send(msg) ' blocks until read returns Dim bytes(1024) As Byte s.Receive(bytes) 'Display to the screen Console.WriteLine(Encoding.ASCII.GetString(bytes)) s.Shutdown(SocketShutdown.Both) Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString())) s.Close() End Sub 'SetSocketOptions
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send (msg); // blocks until read returns byte[] bytes = new byte[1024]; s.Receive (bytes); //Display to the screen Console.WriteLine (Encoding.ASCII.GetString (bytes)); s.Shutdown (SocketShutdown.Both); Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ()); s.Close ();
Console::Write( "This application will timeout if Send does not return within " ); Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) ); // Blocks until send returns. int i = s->Send( msg ); // Blocks until read returns. array<Byte>^ bytes = gcnew array<Byte>(1024); s->Receive( bytes ); //Displays to the screen. Console::WriteLine( Encoding::ASCII->GetString( bytes ) ); s->Shutdown( SocketShutdown::Both ); Console::Write( "If data remains to be sent, this application will stay open for " ); Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() ); s->Close();
Console.WriteLine("This application will timeout if Send does not " + "return within " + Encoding.get_ASCII().GetString(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send(msg); // blocks until read returns ubyte bytes[] = new ubyte[1024]; s.Receive(bytes); //Display to the screen Console.WriteLine(Encoding.get_ASCII().GetString(bytes)); s.Shutdown(SocketShutdown.Both); Console.WriteLine("If data remains to be sent, this application " + "will stay open for " + ((LingerOption)(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger))).get_LingerTime()); s.Close(); } //SetSocketOptions

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Socket.GetSocketOption メソッド

名前 | 説明 |
---|---|
Socket.GetSocketOption (SocketOptionLevel, SocketOptionName) | 指定した Socket オプションの値をオブジェクトとして返します。 .NET Compact Framework によってサポートされています。 |
Socket.GetSocketOption (SocketOptionLevel, SocketOptionName, Byte[]) | 指定した Socket オプション設定をバイト配列として返します。 .NET Compact Framework によってサポートされています。 |
Socket.GetSocketOption (SocketOptionLevel, SocketOptionName, Int32) | 指定した Socket オプションの値を配列で返します。 .NET Compact Framework によってサポートされています。 |

Socket.GetSocketOption メソッド (SocketOptionLevel, SocketOptionName)
アセンブリ: System (system.dll 内)

Public Function GetSocketOption ( _ optionLevel As SocketOptionLevel, _ optionName As SocketOptionName _ ) As Object
Dim instance As Socket Dim optionLevel As SocketOptionLevel Dim optionName As SocketOptionName Dim returnValue As Object returnValue = instance.GetSocketOption(optionLevel, optionName)
public function GetSocketOption ( optionLevel : SocketOptionLevel, optionName : SocketOptionName ) : Object
- optionLevel
SocketOptionLevel 値の 1 つ。
- optionName
SocketOptionName 値の 1 つ。
オプションの値を表すオブジェクト。optionName パラメータを Linger に設定した場合、戻り値は LingerOption クラスのインスタンスです。optionName を AddMembership または DropMembership に設定した場合、戻り値は MulticastOption クラスのインスタンスです。optionName が他の値の場合、戻り値は整数です。


Socket オプションは、現在の Socket の動作を決定します。このオーバーロードを使用して、Linger オプション、AddMembership オプション、および DropMembershipSocket オプションを取得します。Linger オプションの場合は、optionLevel パラメータで Socket を使用します。AddMembership オプションおよび DropMembership オプションについては、IP を使用します。これらのオプションのいずれかの値を設定する必要がある場合は、SetSocketOption メソッドを使用します。
![]() |
---|
SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。 |

LingerOption タイムアウト値と Send タイムアウト値を取得し、コンソールに表示するコード例を次に示します。
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)))) ' blocks until send returns Dim i As Integer = s.Send(msg) ' blocks until read returns Dim bytes(1024) As Byte s.Receive(bytes) 'Display to the screen Console.WriteLine(Encoding.ASCII.GetString(bytes)) s.Shutdown(SocketShutdown.Both) Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString())) s.Close() End Sub 'SetSocketOptions
Console.WriteLine ("This application will timeout if Send does not return within " + Encoding.ASCII.GetString (s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send (msg); // blocks until read returns byte[] bytes = new byte[1024]; s.Receive (bytes); //Display to the screen Console.WriteLine (Encoding.ASCII.GetString (bytes)); s.Shutdown (SocketShutdown.Both); Console.WriteLine ("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption (SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString ()); s.Close ();
Console::Write( "This application will timeout if Send does not return within " ); Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) ); // Blocks until send returns. int i = s->Send( msg ); // Blocks until read returns. array<Byte>^ bytes = gcnew array<Byte>(1024); s->Receive( bytes ); //Displays to the screen. Console::WriteLine( Encoding::ASCII->GetString( bytes ) ); s->Shutdown( SocketShutdown::Both ); Console::Write( "If data remains to be sent, this application will stay open for " ); Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() ); s->Close();
Console.WriteLine("This application will timeout if Send does not " + "return within " + Encoding.get_ASCII().GetString(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))); // blocks until send returns int i = s.Send(msg); // blocks until read returns ubyte bytes[] = new ubyte[1024]; s.Receive(bytes); //Display to the screen Console.WriteLine(Encoding.get_ASCII().GetString(bytes)); s.Shutdown(SocketShutdown.Both); Console.WriteLine("If data remains to be sent, this application " + "will stay open for " + ((LingerOption)(s. GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger))).get_LingerTime()); s.Close(); } //SetSocketOptions

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Socket.GetSocketOptionのページへのリンク