Socket.DuplicateAndClose(Int32) Méthode

Définition

Duplique la référence de socket pour le processus cible et ferme le socket pour ce processus.Duplicates the socket reference for the target process, and closes the socket for this process.

public:
 System::Net::Sockets::SocketInformation DuplicateAndClose(int targetProcessId);
[System.MonoLimitation("We do not support passing sockets across processes, we merely allow this API to pass the socket across AppDomains")]
public System.Net.Sockets.SocketInformation DuplicateAndClose (int targetProcessId);
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éé.The ID of the target process where a duplicate of the socket reference is created.

Retours

Référence de socket à passer au processus cible.The socket reference to be passed to the target process.

Attributs
System.MonoLimitationAttribute

Exceptions

targetProcessID n'est pas un ID de processus valide.targetProcessID is not a valid process id. - ou --or- La duplication de la référence de socket a échoué.Duplication of the socket reference failed.

Remarques

Le processus cible doit utiliser Socket pour créer l’instance de socket dupliquée.The target process should use Socket to create the duplicate socket instance.

Si vous appelez le constructeur Socket plusieurs fois avec le même tableau d’octets que l’argument pour chaque appel, vous allez créer plusieurs instances Socket managées avec le même socket sous-jacent.If you call the Socket constructor multiple times with the same byte array as the argument for each call, you will create multiple managed Socket instances with the same underlying socket. Cette pratique est fortement déconseillée.This practice is strongly discouraged.

Si le processus qui crée le socket utilise des méthodes asynchrones (BeginReceive ou BeginSend), le processus doit d’abord affecter la valeur true à la propriété UseOnlyOverlappedIO. dans le cas contraire, le socket est lié au port d’achèvement du processus de création, ce qui peut provoquer la levée d’une ArgumentNullException sur le processus cible.If the process creating the socket uses asynchronous methods (BeginReceive or BeginSend), the process must first set the UseOnlyOverlappedIO property to true; otherwise, the socket is bound to the completion port of the creating process, which may cause an ArgumentNullException to be thrown on the target process.

S’applique à