Socket.SetSocketOption 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
设置 Socket 选项。
重载
SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) | |
SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
将指定的 Socket 选项设置为指定的值,表示为字节数组。 |
SetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
将指定的 Socket 选项设置为指定的整数值。 |
SetSocketOption(SocketOptionLevel, SocketOptionName, Object) |
将指定的 Socket 选项设置为指定值,表示为对象。 |
SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
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 值之一。
- optionName
- SocketOptionName
SocketOptionName 值之一。
例外
Socket 对象已关闭。
尝试访问套接字时出错。
示例
下面的代码示例打开一个套接字,并启用 DontLinger
和 OutOfBandInline
套接字选项。
// 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的行为。 将 设置为 optionValue
true
以启用 选项,或 设置为 false
以禁用 选项。
Socket 选项按协议支持级别分组。
下面列出了可使用此重载设置的各种 Socket 选项。 这些选项按相应的 SocketOptionLevel 值分组。 如果想要设置这些选项中的任何一个,请确保为 optionLevel
参数使用适当的SocketOptionLevel值。 选择设置的选项必须在 参数中 optionName
指定。 如果要获取列出的任何选项的当前值,请使用 GetSocketOption 方法。
SocketOptionLevel.Socket 可以使用此重载设置的选项。
SocketOptionLevel.IP 可以使用此重载设置的选项。
SocketOptionLevel.Tcp 可以使用此重载设置的选项。
SocketOptionLevel.Udp 可以使用此重载设置的选项。
有关这些选项的详细信息,请参阅 SocketOptionName 枚举。
注意
如果收到 SocketException 异常,请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。
适用于
SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
将指定的 Socket 选项设置为指定的值,表示为字节数组。
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 值之一。
- optionName
- SocketOptionName
SocketOptionName 值之一。
例外
尝试访问套接字时出错。
示例
下面的代码示例设置 LingerOption 和 Send 超时值。
// 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);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' 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 需要字节数组作为选项值的选项。
注意
如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
另请参阅
适用于
SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
将指定的 Socket 选项设置为指定的整数值。
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 值之一。
- optionName
- SocketOptionName
SocketOptionName 值之一。
- optionValue
- Int32
该选项的值。
例外
尝试访问套接字时出错。
示例
下面的代码示例设置 LingerOption 和 Send 超时值。
// Specifies that send operations will time-out
// if confirmation is not received within 1000 milliseconds.
s->SetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000);
// Send operations will time-out if confirmation
// is not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000);
'Send operations will time-out if confirmation is
' not received within 1000 milliseconds.
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 1000)
注解
Socket 选项确定当前 Socket的行为。 对于数据类型为 Boolean 的选项,请指定一个非零值来启用 该选项,并指定一个零值以禁用该选项。 对于具有整数数据类型的选项,请指定适当的值。 Socket 选项按协议支持级别分组。
下面列出了可使用此重载设置的各种 Socket 选项。 这些选项按相应的 SocketOptionLevel进行分组。 如果打算设置这些选项中的任何一个,请确保使用适用于 SocketOptionLevel 参数的 optionLevel
。 选择设置的选项必须在 参数中 optionName
指定。 如果要获取列出的任何选项的当前值,请使用 GetSocketOption 方法。
SocketOptionLevel.Socket 可以使用此重载设置的选项。
SocketOptionLevel.IP 可以使用此重载设置的选项。
SocketOptionLevel.Tcp 可以使用此重载设置的选项。
SocketOptionLevel.Udp 可以使用此重载设置的选项。
SocketOptionLevel.IPv6 可以使用此重载设置的选项。
有关这些选项的详细信息,请参阅 SocketOptionName 枚举。
注意
如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。
另请参阅
适用于
SetSocketOption(SocketOptionLevel, SocketOptionName, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
将指定的 Socket 选项设置为指定值,表示为对象。
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 值之一。
- optionName
- SocketOptionName
SocketOptionName 值之一。
- optionValue
- Object
一个 LingerOption 或 MulticastOption,它包含该选项的值。
例外
optionValue
为 null
。
尝试访问套接字时出错。
示例
下面的代码示例设置 LingerOption 和 Send 超时值。
// 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);
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' 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的行为。 使用此重载设置 Linger、 AddMembership和 DropMembershipSocket 选项。
Linger对于 选项,请使用 Socket 用于 optionLevel
参数。 对于 AddMembership 和 DropMembership,请使用 IP。 如果要获取上面列出的任何选项的当前值,请使用 GetSocketOption 方法。
注意
如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,了解错误的详细说明。