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)
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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 值。
例外狀況
嘗試存取通訊端時發生錯誤。
範例
下列程式代碼範例會開啟套接字,並啟用 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的行為。
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 值。
例外狀況
嘗試存取通訊端時發生錯誤。
範例
下列程式代碼範例會設定 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 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
選項的值。
例外狀況
嘗試存取通訊端時發生錯誤。
範例
下列程式代碼範例會設定 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分組。 如果您想要設定上述任一選項,請務必針對 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
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 Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。