語言

IpSecManager.ApplyTransportModeTransform 方法

定義

多載

ApplyTransportModeTransform(FileDescriptor, IpSecTransportDirection, IpSecTransform)

對一個 socket 套用 IPsec 轉換。

[Android.Runtime.Register("applyTransportModeTransform", "(Ljava/io/FileDescriptor;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_io_FileDescriptor_ILandroid_net_IpSecTransform_Handler", ApiSince=28)]
public virtual void ApplyTransportModeTransform(Java.IO.FileDescriptor socket, Android.Net.IpSecTransportDirection direction, Android.Net.IpSecTransform transform);
[<Android.Runtime.Register("applyTransportModeTransform", "(Ljava/io/FileDescriptor;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_io_FileDescriptor_ILandroid_net_IpSecTransform_Handler", ApiSince=28)>]
abstract member ApplyTransportModeTransform : Java.IO.FileDescriptor * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit
override this.ApplyTransportModeTransform : Java.IO.FileDescriptor * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit

參數

socket
FileDescriptor

一個套接字檔描述符

direction
IpSecTransportDirection

轉換應應用的方向

transform
IpSecTransform

一種運輸模式 IpSecTransform

屬性

備註

此方法將傳輸模式封裝應用於指定插座。 套用後,插座上的輸入輸出將依據 IpSecTransform. 當呼叫 從套接字 #removeTransportModeTransforms移除轉換後,該套接字上的未受保護流量可繼續。

出於安全考量,任何 socket 上流量的目的位址必須與 的遠端InetAddressIpSecTransform位址相符。 嘗試將流量傳送到任何其他 IP 位址都會導致 IOException。 此外,若使用者在未呼叫 IpSecTransform#close()的情況下停用轉換(呼叫 #removeTransportModeTransforms),套接字的讀寫會觸發 IOException 。

請注意,應用於 TCP 套接字時, IpSecTransform#close() 若在完成優雅關機前呼叫已套用的轉換,可能會導致關機序列未能完成。 因此,需要優雅關機的應用程式必須在停用套用轉換前關閉插槽。 套接字閉包可以非同步(批次)執行,因此回傳關閉函式並不保證套接字會自動關閉。 設定SO_LINGER逾時會使套接字關閉同步執行,足以確保關機。

具體來說,如果轉換在關閉套接字前被停用(呼叫 IpSecTransform#close()),標準的 [FIN - FIN/ACK - ACK] 或重置 [RST] 封包會因缺乏有效轉換而被丟棄。 同樣地,若未關閉SO_LINGER選項集的套接字,延遲或批次的 FIN 封包可能會被丟棄。

<h4>重新鍵程序</h4>

當對出站方向的套接字套接字套用新 transform 時,先前的轉換會被移除,新的轉換會立即生效,所有流量都傳送到新的轉換;然而,當對入站方向施加轉換時,舊轉換上的流量仍會被解密並傳送,直到該 IpSecTransform#close()轉換被呼叫 。 這種重疊允許無損重鍵程序,兩個轉換在雙方端點使用新轉換且所有在傳輸封包都已接收前有效。

Java 文件 android.net.IpSecManager.applyTransportModeTransform(java.io.FileDescriptor, int, android.net.IpSecTransform)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

ApplyTransportModeTransform(DatagramSocket, IpSecTransportDirection, IpSecTransform)

對資料報套接字套用 IPsec 轉換。

[Android.Runtime.Register("applyTransportModeTransform", "(Ljava/net/DatagramSocket;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_net_DatagramSocket_ILandroid_net_IpSecTransform_Handler", ApiSince=28)]
public virtual void ApplyTransportModeTransform(Java.Net.DatagramSocket socket, Android.Net.IpSecTransportDirection direction, Android.Net.IpSecTransform transform);
[<Android.Runtime.Register("applyTransportModeTransform", "(Ljava/net/DatagramSocket;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_net_DatagramSocket_ILandroid_net_IpSecTransform_Handler", ApiSince=28)>]
abstract member ApplyTransportModeTransform : Java.Net.DatagramSocket * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit
override this.ApplyTransportModeTransform : Java.Net.DatagramSocket * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit

參數

socket
DatagramSocket

資料報套接字

direction
IpSecTransportDirection

轉換應應用的方向

transform
IpSecTransform

一種運輸模式 IpSecTransform

屬性

備註

此方法將傳輸模式封裝應用於指定插座。 套用後,插座上的輸入輸出將依據 IpSecTransform. 當呼叫 從套接字 #removeTransportModeTransforms移除轉換後,該套接字上的未受保護流量可繼續。

出於安全考量,任何 socket 上流量的目的位址必須與 的遠端InetAddressIpSecTransform位址相符。 嘗試將流量傳送到任何其他 IP 位址都會導致 IOException。 此外,若使用者在未呼叫 IpSecTransform#close()的情況下停用轉換(呼叫 #removeTransportModeTransforms),套接字的讀寫會觸發 IOException 。

<h4>重新鍵程序</h4>

當對出站方向的套接字套接字套用新 transform 時,先前的轉換會被移除,新的轉換會立即生效,所有流量都傳送到新的轉換;然而,當對入站方向施加轉換時,舊轉換上的流量仍會被解密並傳送,直到該 IpSecTransform#close()轉換被呼叫 。 這種重疊允許無損重鍵程序,兩個轉換在雙方端點使用新轉換且所有在傳輸封包都已接收前有效。

Java 文件 android.net.IpSecManager.applyTransportModeTransform(java.net.DatagramSocket, int, android.net.IpSecTransform)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

ApplyTransportModeTransform(Socket, IpSecTransportDirection, IpSecTransform)

對串流套接字套用 IPsec 轉換。

[Android.Runtime.Register("applyTransportModeTransform", "(Ljava/net/Socket;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_net_Socket_ILandroid_net_IpSecTransform_Handler", ApiSince=28)]
public virtual void ApplyTransportModeTransform(Java.Net.Socket socket, Android.Net.IpSecTransportDirection direction, Android.Net.IpSecTransform transform);
[<Android.Runtime.Register("applyTransportModeTransform", "(Ljava/net/Socket;ILandroid/net/IpSecTransform;)V", "GetApplyTransportModeTransform_Ljava_net_Socket_ILandroid_net_IpSecTransform_Handler", ApiSince=28)>]
abstract member ApplyTransportModeTransform : Java.Net.Socket * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit
override this.ApplyTransportModeTransform : Java.Net.Socket * Android.Net.IpSecTransportDirection * Android.Net.IpSecTransform -> unit

參數

socket
Socket

串流插槽

direction
IpSecTransportDirection

轉換應應用的方向

transform
IpSecTransform

一種運輸模式 IpSecTransform

屬性

備註

此方法將傳輸模式封裝應用於指定插座。 套用後,插座上的輸入輸出將依據 IpSecTransform. 當呼叫 從套接字 #removeTransportModeTransforms移除轉換後,該套接字上的未受保護流量可繼續。

出於安全考量,任何 socket 上流量的目的位址必須與 的遠端InetAddressIpSecTransform位址相符。 嘗試將流量傳送到任何其他 IP 位址都會導致 IOException。 此外,若使用者在未呼叫 IpSecTransform#close()的情況下停用轉換(呼叫 #removeTransportModeTransforms),套接字的讀寫會觸發 IOException 。

請注意,應用於 TCP 套接字時, IpSecTransform#close() 若在完成優雅關機前呼叫已套用的轉換,可能會導致關機序列未能完成。 因此,需要優雅關機的應用程式必須在停用套用轉換前關閉插槽。 套接字閉包可以非同步(批次)執行,因此回傳關閉函式並不保證套接字會自動關閉。 設定SO_LINGER逾時會使套接字關閉同步執行,足以確保關機。

具體來說,如果轉換在關閉套接字前被停用(呼叫 IpSecTransform#close()),標準的 [FIN - FIN/ACK - ACK] 或重置 [RST] 封包會因缺乏有效轉換而被丟棄。 同樣地,若未關閉SO_LINGER選項集的套接字,延遲或批次的 FIN 封包可能會被丟棄。

<h4>重新鍵程序</h4>

當對出站方向的套接字套接字套用新 transform 時,先前的轉換會被移除,新的轉換會立即生效,所有流量都傳送到新的轉換;然而,當對入站方向施加轉換時,舊轉換上的流量仍會被解密並傳送,直到該 IpSecTransform#close()轉換被呼叫 。 這種重疊允許無損重鍵程序,兩個轉換在雙方端點使用新轉換且所有在傳輸封包都已接收前有效。

Java 文件 android.net.IpSecManager.applyTransportModeTransform(java.net.Socket, int, android.net.IpSecTransform)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於