Partager via


Socket.DuplicateAndClose(Int32) Méthode

Définition

Dupliquer la référence de socket pour le processus cible et ferme le socket pour ce processus.

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

Paramètres

targetProcessId
Int32

ID du processus cible où un doublon de la référence de socket est créé.

Retours

Référence de socket à passer au processus cible.

Attributs

Exceptions

.NET Core sur n’importe quel système d’exploitation et .NET 5+ sur le système d’exploitation Unix uniquement : la plateforme actuelle n’est pas prise en charge.

targetProcessId n’est pas un ID de processus valide.

- ou -

Échec de la duplication de la référence de socket.

Remarques

Le processus cible doit utiliser le Socket(SocketInformation) constructeur pour créer l’instance de socket en double.

N’appelez pas le Socket(SocketInformation) constructeur plusieurs fois à l’aide du même tableau d’octets dans l’argument SocketInformation de chaque appel. Si vous le faites, vous aurez plusieurs instances managées Socket avec le même socket sous-jacent, ce qui est fortement déconseillé.

Sur .NET Framework, si le processus de création du socket utilise des méthodes asynchrones, le processus doit d’abord définir la UseOnlyOverlappedIO propriété truesur . Sinon, la méthode asynchrone lie le socket à un port d’achèvement d’E/S du processus de création, ce qui peut entraîner une ArgumentNullException levée dans le processus cible.

DuplicateAndClose(Int32) a une prise en charge limitée sur Windows. Contrairement à .NET Framework, la UseOnlyOverlappedIO propriété est un protocole NOP. Par conséquent, le processus de création du socket ne doit jamais appeler des méthodes asynchrones sur le socket. Un appel à une opération asynchrone lient toujours à un port d’achèvement d’E/S du processus de création, ce qui peut entraîner une ArgumentNullException levée dans le processus cible.

S’applique à