Socket.DuplicateAndClose(Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Duplikuje odwołanie gniazda dla procesu docelowego i zamyka gniazdo dla tego procesu.
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
Identyfikator procesu docelowego, w którym jest tworzony duplikat odwołania do gniazda.
Zwraca
Odwołanie do gniazda, które ma zostać przekazane do procesu docelowego.
- Atrybuty
Wyjątki
Platforma .NET Core w dowolnym systemie operacyjnym i programie .NET 5 lub nowszym tylko w systemie operacyjnym Unix: bieżąca platforma nie jest obsługiwana.
targetProcessID
jest nieprawidłowym identyfikatorem procesu.
-lub-
Duplikowanie odwołania do gniazda nie powiodło się.
Uwagi
Proces docelowy powinien używać konstruktora Socket(SocketInformation) do utworzenia zduplikowanego wystąpienia gniazda.
Nie należy wywoływać konstruktora Socket(SocketInformation) wiele razy przy użyciu tej samej tablicy bajtów w argumencie SocketInformation w każdym wywołaniu. Jeśli to zrobisz, będziesz mieć wiele wystąpień zarządzanych Socket z tym samym podstawowym gniazdem, co jest zdecydowanie odradzane.
Na .NET Framework, jeśli proces tworzenia gniazda używa metod asynchronicznych, proces musi najpierw ustawić UseOnlyOverlappedIO właściwość na true
. W przeciwnym razie metoda asynchroniczna powiąże gniazdo z portem ukończenia we/ wy procesu tworzenia, co może spowodować ArgumentNullException zgłoszenie w procesie docelowym.
Na platformie .NET Core 1.0-3.1 ta metoda nie jest obsługiwana.
Na platformie .NET 5 lub nowszym DuplicateAndClose(Int32) obsługa systemu Windows jest ograniczona. W przeciwieństwie do .NET FrameworkUseOnlyOverlappedIO, właściwość jest NOP, dlatego proces tworzenia gniazda nigdy nie może wywoływać metod asynchronicznych w gniazdie. Wywołanie operacji asynchronicznej zawsze wiąże je z portem ukończenia we/ wy procesu tworzenia, co może spowodować ArgumentNullException zgłoszenie elementu w procesie docelowym.