Bagikan melalui


Socket.DuplicateAndClose(Int32) Metode

Definisi

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.

targetProcessID bukan id proses yang valid.

-atau-

Duplikasi referensi soket gagal.

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.

Berlaku untuk