Socket.SetSocketOption 方法

定義

設定 Socket 選項。

多載

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

將指定的 Socket 選項設為指定的 Boolean 值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

將指定的 Socket 選項設定為指定值,表示為位元組陣列。

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

將指定 Socket 選項設定為指定的整數值。

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

將指定的 Socket 選項設定為指定值,表示為物件。

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

來源:
Socket.cs
來源:
Socket.cs
來源:
Socket.cs

將指定的 Socket 選項設為指定的 Boolean 值。

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 值。

optionValue
Boolean

選項的值,表示為 Boolean

例外狀況

Socket物件已關閉。

嘗試存取通訊端時發生錯誤。

範例

下列程式碼範例會開啟通訊端,並啟用 DontLingerOutOfBandInline 通訊端選項。

// 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 的行為。 true設定 optionValue 為 以啟用 選項,或 設定 false 為 以停用 選項。

Socket 選項會依通訊協定支援層級分組。

以下列出可使用這個多載設定的各種 Socket 選項。 這些選項會依適當的 SocketOptionLevel 值分組。 如果您想要設定上述任一選項,請務必針對 optionLevel 參數使用適當的 SocketOptionLevel 值。 您選擇要設定的選項必須在 參數中 optionName 指定。 如果您想要取得任何所列選項的目前值,請使用 GetSocketOption 方法。

SocketOptionLevel.Socket 可以使用這個多載來設定的選項。

SocketOptionLevel.IP 可以使用這個多載來設定的選項。

SocketOptionLevel.Tcp 可以使用這個多載來設定的選項。

SocketOptionLevel.Udp 可以使用這個多載來設定的選項。

如需這些選項的詳細資訊,請參閱 SocketOptionName 列舉。

注意

如果您收到 SocketException 例外狀況,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

適用於

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

來源:
Socket.cs
來源:
Socket.cs
來源:
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 值。

optionValue
Byte[]

Byte 型別的陣列,表示選項的值。

例外狀況

嘗試存取通訊端時發生錯誤。

範例

下列程式碼範例會設定 LingerOptionSend 逾時值。

// 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 Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

注意

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱.NET Framework 中的網路追蹤

另請參閱

適用於

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

來源:
Socket.cs
來源:
Socket.cs
來源:
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

選項的值。

例外狀況

嘗試存取通訊端時發生錯誤。

範例

下列程式碼範例會設定 LingerOptionSend 逾時值。

// 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 分組。 如果您想要設定上述任一選項,請務必針對 optionLevel 參數使用適當的 SocketOptionLevel 選項。 您選擇要設定的選項必須在 參數中 optionName 指定。 如果您想要取得任何所列選項的目前值,請使用 GetSocketOption 方法。

SocketOptionLevel.Socket 可以使用這個多載來設定的選項。

SocketOptionLevel.IP 可以使用這個多載來設定的選項。

SocketOptionLevel.Tcp 可以使用這個多載來設定的選項。

SocketOptionLevel.Udp 可以使用這個多載來設定的選項。

SocketOptionLevel.IPv6 可以使用這個多載來設定的選項。

如需這些選項的詳細資訊,請參閱 SocketOptionName 列舉。

注意

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

注意

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱.NET Framework 中的網路追蹤

另請參閱

適用於

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

來源:
Socket.cs
來源:
Socket.cs
來源:
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

LingerOptionMulticastOption,包含選項值。

例外狀況

optionValuenull

嘗試存取通訊端時發生錯誤。

範例

下列程式碼範例會設定 LingerOptionSend 逾時值。

// 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 的行為。 使用此多載來設定 LingerAddMembershipDropMembershipSocket 選項。 Linger針對 選項,請使用 Socket 參數 optionLevel 。 針對 AddMembershipDropMembership ,請使用 IP 。 如果您想要取得上述任何選項的目前值,請使用 GetSocketOption 方法。

注意

如果您收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

另請參閱

適用於