Socket.DuplicateAndClose(Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Duplica il riferimento al socket per il processo di destinazione e chiude il socket per tale processo.
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
Parametri
- targetProcessId
- Int32
L'ID del processo di destinazione in cui viene creato un duplicato del riferimento al socket.
Restituisce
Il riferimento al socket da passare al processo di destinazione.
- Attributi
Eccezioni
.NET Core in qualsiasi sistema operativo e .NET 5+ solo nel sistema operativo unix: la piattaforma corrente non è supportata.
targetProcessID
non è un ID di processo valido.
-oppure-
La duplicazione del riferimento al socket non è riuscita.
Commenti
Il processo di destinazione deve usare il Socket(SocketInformation) costruttore per creare l'istanza del socket duplicato.
Non chiamare più volte il Socket(SocketInformation) costruttore usando la stessa matrice di byte nell'argomento SocketInformation in ogni chiamata. In caso affermativo, si avranno più istanze gestite Socket con lo stesso socket sottostante, che è fortemente sconsigliato.
In .NET Framework, se il processo che crea il socket usa metodi asincroni, il processo deve prima impostare la UseOnlyOverlappedIO proprietà su true
. In caso contrario, il metodo asincrono associa il socket a una porta di completamento di I/O del processo di creazione, che può causare la creazione di un ArgumentNullException elemento nel processo di destinazione.
In .NET Core 1.0-3.1 questo metodo non è supportato.
In .NET 5+, DuplicateAndClose(Int32) è disponibile un supporto limitato in Windows. A differenza di .NET Framework, la proprietà è un NOP, pertanto il processo che crea il UseOnlyOverlappedIO socket non deve mai chiamare metodi asincroni nel socket. Una chiamata a un'operazione asincrona lo associa sempre a una porta di completamento di I/O del processo di creazione, che può causare l'attivazione di un'operazione ArgumentNullException nel processo di destinazione.