Socket.DuplicateAndClose(Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menduplikasi referensi soket untuk proses target, dan menutup soket untuk proses ini.
public:
System::Net::Sockets::SocketInformation DuplicateAndClose(int targetProcessId);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);
public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.DuplicateAndClose : int -> System.Net.Sockets.SocketInformation
member this.DuplicateAndClose : int -> System.Net.Sockets.SocketInformation
Public Function DuplicateAndClose (targetProcessId As Integer) As SocketInformation
Parameter
- targetProcessId
- Int32
ID proses target tempat duplikat referensi soket dibuat.
Mengembalikan
Referensi soket yang akan diteruskan ke proses target.
- Atribut
Pengecualian
.NET Core pada OS dan .NET 5+ apa pun hanya pada OS berbasis Unix: Platform saat ini tidak didukung.
Keterangan
Proses target harus menggunakan Socket(SocketInformation) konstruktor untuk membuat instans soket duplikat.
Jangan panggil Socket(SocketInformation) konstruktor beberapa kali menggunakan array byte yang sama dalam SocketInformation argumen di setiap panggilan. Jika ya, Anda akan memiliki beberapa Socket instans terkelola dengan soket dasar yang sama, yang sangat tidak disarankan.
Pada .NET Framework, jika proses pembuatan soket menggunakan metode asinkron, prosesnya harus terlebih dahulu mengatur UseOnlyOverlappedIO properti ke true
. Jika tidak, metode asinkron akan mengikat soket ke port penyelesaian I/O dari proses pembuatan, yang dapat menyebabkan ArgumentNullException dilemparkan dalam proses target.
Pada .NET Core 1.0-3.1, metode ini tidak didukung.
Pada .NET 5+, DuplicateAndClose(Int32) memiliki dukungan terbatas pada Windows. Tidak seperti pada .NET Framework, UseOnlyOverlappedIO properti adalah NOP, oleh karena itu proses membuat soket tidak boleh memanggil metode asinkron pada soket. Panggilan ke operasi asinkron akan selalu mengikatnya ke port penyelesaian I/O dari proses pembuatan, yang dapat menyebabkan ArgumentNullException dilemparkan dalam proses target.