Socket.GetSocketOption 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回选项的值 Socket 。
重载
| 名称 | 说明 |
|---|---|
| GetSocketOption(SocketOptionLevel, SocketOptionName) |
返回指定选项的值 Socket ,表示为对象。 |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
返回以字节数组表示的指定 Socket 选项设置。 |
| GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
返回数组中指定 Socket 选项的值。 |
GetSocketOption(SocketOptionLevel, SocketOptionName)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
返回指定选项的值 Socket ,表示为对象。
public:
System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object? GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
public object GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object
参数
- optionLevel
- SocketOptionLevel
其中一个 SocketOptionLevel 值。
- optionName
- SocketOptionName
其中一个 SocketOptionName 值。
返回
一个表示选项值的对象。 当参数 optionName 设置为 Linger 返回值时,返回值是类的 LingerOption 实例。
AddMembership设置为optionName或设置为或DropMembership返回值是类的MulticastOption实例。 如果 optionName 为任何其他值,则返回值为整数。
例外
示例
下面的代码示例检索 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
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.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
注解
Socket 选项确定当前 Socket的行为。 使用此重载获取Linger和AddMembershipDropMembershipSocket选项。
Linger对于选项,请Socket用于optionLevel参数。 对于 AddMembership 和 DropMembership,请使用 IP。 如果要设置上面列出的任一选项的值,请使用 SetSocketOption 该方法。
注释
如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,有关错误的详细说明,请参阅 Windows 套接字版本 2 API 错误代码 文档。
注释
在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
另请参阅
适用于
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
返回以字节数组表示的指定 Socket 选项设置。
public:
void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())
参数
- optionLevel
- SocketOptionLevel
其中一个 SocketOptionLevel 值。
- optionName
- SocketOptionName
其中一个 SocketOptionName 值。
例外
尝试访问套接字时出错。
-或-
在 .NET Compact Framework 应用程序中,Windows CE 默认缓冲区空间设置为 32768 字节。 可以通过调用 SetSocketOption来更改每个套接字缓冲区空间。
示例
下面的代码示例检索 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
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.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
注解
Socket 选项确定当前 Socket的行为。 成功完成此方法后,由参数指定的 optionValue 数组包含指定 Socket 选项的值。
当数组的 optionValue 长度小于存储指定 Socket 选项的值所需的字节数时, GetSocketOption 将引发一个 SocketException。 如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,有关错误的详细说明,请参阅 Windows 套接字版本 2 API 错误代码 文档。 将此重载用于由布尔值或整数表示的任何套接字。
注释
在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
另请参阅
适用于
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
返回数组中指定 Socket 选项的值。
public:
cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption(System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()
参数
- optionLevel
- SocketOptionLevel
其中一个 SocketOptionLevel 值。
- optionName
- SocketOptionName
其中一个 SocketOptionName 值。
- optionLength
- Int32
预期返回值的长度(以字节为单位)。
返回
包含套接字选项值的类型的 Byte 数组。
例外
尝试访问套接字时出错。
-或-
在 .NET Compact Framework 应用程序中,Windows CE 默认缓冲区空间设置为 32768 字节。 可以通过调用 SetSocketOption来更改每个套接字缓冲区空间。
示例
下面的代码示例检索 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
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.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
注解
该 optionLength 参数设置返回的字节数组的最大大小。 如果选项值需要更少的字节,则数组将仅包含该多字节。 如果选项值需要更多字节, GetSocketOption 将引发一个 SocketException。 将此重载用于由布尔值或整数表示的任何套接字。
注释
如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,有关错误的详细说明,请参阅 Windows 套接字版本 2 API 错误代码 文档。
注释
在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。