英語で読む

次の方法で共有


Socket.GetSocketOption メソッド

定義

Socket オプションの値を返します。

オーバーロード

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプション設定をバイト配列として返します。

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションの値を配列で返します。

GetSocketOption(SocketOptionLevel, SocketOptionName)

指定した Socket オプションの値をオブジェクトとして返します。

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

指定した Socket オプション設定をバイト配列として返します。

C#
public void GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。

optionValue
Byte[]

オプション設定を受信する Byte 型の配列。

例外

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

- または -

.NET Compact Framework アプリケーションでは、Windows CE の既定のバッファー領域は 32768 バイトに設定されます。 ソケットごとのバッファー領域は、SetSocketOption を呼び出して変更できます。

Socket が閉じられました。

次のコード例では、 と Send のタイムアウト値をLingerOption取得し、コンソールに表示します。

C#
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();

注釈

Socket オプションは、現在 Socketの の動作を決定します。 このメソッドが正常に完了すると、 パラメーターで optionValue 指定された配列には、指定した Socket オプションの値が含まれます。

配列の長さが、指定したオプションのoptionValue値を格納するために必要なバイト数よりも小さい場合、 GetSocketOption は をSocketExceptionスローSocketします。 を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については 、Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。 ブール値または整数で表されるソケットには、このオーバーロードを使用します。

注意

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

指定した Socket オプションの値を配列で返します。

C#
public byte[] GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。

optionLength
Int32

予期される戻り値のバイト単位の長さ。

戻り値

Byte[]

ソケット オプションの値を格納している Byte 型の配列。

例外

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

- または -

.NET Compact Framework アプリケーションでは、Windows CE の既定のバッファー領域は 32768 バイトに設定されます。 ソケットごとのバッファー領域は、SetSocketOption を呼び出して変更できます。

Socket が閉じられました。

次のコード例では、 と Send のタイムアウト値をLingerOption取得し、コンソールに表示します。

C#
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();

注釈

パラメーターは optionLength 、返されるバイト配列の最大サイズを設定します。 オプション値に必要なバイト数が少ない場合、配列にはその数のバイトのみが含まれます。 オプション値に必要なバイト数が多い場合、 GetSocketOption は をスローします SocketException。 ブール値または整数で表されるソケットには、このオーバーロードを使用します。

注意

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

注意

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

指定した Socket オプションの値をオブジェクトとして返します。

C#
public object? GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
C#
public object GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);

パラメーター

optionLevel
SocketOptionLevel

SocketOptionLevel 値のいずれか 1 つ。

optionName
SocketOptionName

SocketOptionName 値のいずれか 1 つ。

戻り値

オプションの値を表すオブジェクト。 optionName パラメーターを Linger に設定した場合、戻り値は LingerOption クラスのインスタンスです。 optionNameAddMembership または DropMembership に設定した場合、戻り値は MulticastOption クラスのインスタンスです。 optionName が他の値の場合、戻り値は整数です。

例外

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

- または -

optionName が、サポートされていない値 MaxConnections に設定されました。

Socket が閉じられました。

次のコード例では、 と Send のタイムアウト値をLingerOption取得し、コンソールに表示します。

C#
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();

注釈

Socket オプションは、現在 Socketの の動作を決定します。 、、および の各オプションを取得するには、LingerAddMembershipこのオーバーロードをDropMembershipSocket使用します。 オプションにはLinger、 パラメーターに optionLevel を使用Socketします。 と DropMembershipの場合はAddMembership、 を使用しますIP。 上記のいずれかのオプションの値を設定する場合は、 メソッドを使用します SetSocketOption

注意

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

注意

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1