Sdílet prostřednictvím


Socket.DuplicateAndClose(Int32) Metoda

Definice

Duplikuje odkaz na soket pro cílový proces a zavře soket pro tento proces.

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

Parametry

targetProcessId
Int32

ID cílového procesu, kde se vytvoří duplikát odkazu soketu.

Návraty

Odkaz na soket, který se má předat cílovému procesu.

Atributy

Výjimky

.NET Core v jakémkoli operačním systému a .NET 5 nebo novějším v operačním systému Unix: Aktuální platforma není podporována.

targetProcessId není platné ID procesu.

nebo

Duplikace odkazu soketu se nezdařila.

Poznámky

Cílový proces by měl použít Socket(SocketInformation) konstruktor k vytvoření duplicitní instance soketu.

Nevolejte Socket(SocketInformation) konstruktor vícekrát pomocí stejného bajtového pole v argumentu SocketInformation v každém volání. Pokud to uděláte, budete mít více spravovaných Socket instancí se stejným podkladovým soketem, což důrazně nedoporučujeme.

V rozhraní .NET Framework, pokud proces, který vytváří soket používá asynchronní metody, musí proces nejprve nastavit UseOnlyOverlappedIO vlastnost na true. V opačném případě asynchronní metoda vytvoří vazbu soketu na port dokončení vstupně-výstupní operace procesu vytváření, což může způsobit ArgumentNullException vyvolání v cílovém procesu.

DuplicateAndClose(Int32) má omezenou podporu ve Windows. Na rozdíl od rozhraní .NET Framework UseOnlyOverlappedIO je vlastnost NOP, proto proces, který vytváří soket, nesmí nikdy volat asynchronní metody na soketu. Volání asynchronní operace vždy vytvoří vazbu na port dokončení vstupně-výstupních operací procesu vytváření, což může způsobit ArgumentNullException vyvolání v cílovém procesu.

Platí pro