Socket.DuplicateAndClose(Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.
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.