Socket.DuplicateAndClose(Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de socketreferentie voor het doelproces gedupliceerd en wordt de socket voor dit proces gesloten.
public:
System::Net::Sockets::SocketInformation DuplicateAndClose(int targetProcessId);
public System.Net.Sockets.SocketInformation DuplicateAndClose(int targetProcessId);
member this.DuplicateAndClose : int -> System.Net.Sockets.SocketInformation
Public Function DuplicateAndClose (targetProcessId As Integer) As SocketInformation
Parameters
- targetProcessId
- Int32
De id van het doelproces waarbij een duplicaat van de socket-verwijzing wordt gemaakt.
Retouren
De socket-verwijzing die moet worden doorgegeven aan het doelproces.
Uitzonderingen
.NET Core op elk besturingssysteem en .NET 5+ op alleen unix-besturingssysteem: het huidige platform wordt niet ondersteund.
targetProcessId is geen geldige proces-id.
– of –
Duplicatie van de socketreferentie is mislukt.
Opmerkingen
Het doelproces moet de Socket(SocketInformation) constructor gebruiken om het dubbele socket-exemplaar te maken.
Roep de Socket(SocketInformation) constructor niet meerdere keren aan met dezelfde bytematrix in het SocketInformation argument in elke aanroep. Als u dit doet, hebt u meerdere beheerde Socket exemplaren met dezelfde onderliggende socket, wat sterk wordt afgeraden.
Als in .NET Framework het proces voor het maken van de socket asynchrone methoden gebruikt, moet het proces eerst de eigenschap UseOnlyOverlappedIO instellen op true. Anders verbindt de asynchrone methode de socket met een I/O-voltooiingspoort van het proces, waardoor het doelproces mogelijk ArgumentNullException wordt gegenereerd.
DuplicateAndClose(Int32) heeft beperkte ondersteuning voor Windows. In tegenstelling tot .NET Framework is de eigenschap UseOnlyOverlappedIO een NOP. Daarom moet het proces waarmee de socket wordt gemaakt nooit asynchrone methoden op de socket aanroepen. Een aanroep naar een asynchrone bewerking verbindt deze altijd met een I/O-voltooiingspoort van het proces, waardoor het doelproces kan ArgumentNullException worden gegenereerd.