Socket.DuplicateAndClose(Int32) Metoda

Definicja

Duplikuje odwołanie do gniazda dla procesu docelowego i zamyka gniazdo dla tego procesu.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

Parametry

targetProcessId
Int32

Identyfikator procesu docelowego, w którym jest tworzone duplikaty odwołania gniazda.The ID of the target process where a duplicate of the socket reference is created.

Zwraca

Odwołanie do gniazda, które ma zostać przesłane do procesu docelowego.The socket reference to be passed to the target process.

Atrybuty
System.MonoLimitationAttribute

Wyjątki

targetProcessID nie jest prawidłowym identyfikatorem procesu.targetProcessID is not a valid process id. lub-or- Duplikowanie odwołania gniazda nie powiodło się.Duplication of the socket reference failed.

Uwagi

Proces docelowy powinien używać Socket, aby utworzyć zduplikowane wystąpienie gniazda.The target process should use Socket to create the duplicate socket instance.

W przypadku wywołania konstruktora Socket wiele razy z tą samą tablicą bajtową co argument dla każdego wywołania, utworzysz wiele wystąpień zarządzanych Socket z tym samym gniazdem podstawowym.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. Jest to zdecydowanie odradzane.This practice is strongly discouraged.

Jeśli proces tworzenia gniazda używa metod asynchronicznych (BeginReceive lub BeginSend), proces musi najpierw ustawić właściwość UseOnlyOverlappedIO na true; w przeciwnym razie gniazdo jest powiązane z portem zakończenia procesu tworzenia, co może spowodować wyrzucanie ArgumentNullException w procesie docelowym.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.

Dotyczy