語言

ParcelFileDescriptor.FromSocket(Socket) 方法

定義

從指定的 Socket 建立一個新的 ParcelFileDescriptor。

[Android.Runtime.Register("fromSocket", "(Ljava/net/Socket;)Landroid/os/ParcelFileDescriptor;", "")]
public static Android.OS.ParcelFileDescriptor? FromSocket(Java.Net.Socket? socket);
[<Android.Runtime.Register("fromSocket", "(Ljava/net/Socket;)Landroid/os/ParcelFileDescriptor;", "")>]
static member FromSocket : Java.Net.Socket -> Android.OS.ParcelFileDescriptor

參數

socket
Socket

該套接字的 FileDescriptor 用於建立新的 ParcelFileDescriptor。

傳回

一個新的 ParcelFileDescriptor,並複製了指定 Socket 的 FileDescriptor 副本。

屬性

備註

從指定的 Socket 建立一個新的 ParcelFileDescriptor。 新的 ParcelFileDescriptor 會保留 Socket 中原始 FileDescriptor 的重複版本,因此你仍然必須關閉 Socket 以及新的 ParcelFileDescriptor。

<strong>WARNING:</strong> 在 API 等級 29 之前,這個函式實際上不會重複 Socket 的 FileDescriptor,而是引用其內部 FileDescriptor。 如果 Socket 在 ParcelFileDescriptor 之前被垃圾回收,可能會導致 ParcelFileDescriptor 意外關閉。 為避免此情況,可採用以下模式:

{@code
               ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket).dup();
            }

Java 文件 android.os.ParcelFileDescriptor.fromSocket(java.net.Socket)。

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

適用於