Socket.DuplicateAndClose(Int32) Método

Definição

Duplica a referência do soquete para o processo alvo e fecha o soquete para este processo.

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

Parâmetros

targetProcessId
Int32

O ID do processo alvo onde é criado um duplicado da referência do soquete.

Devoluções

A referência do soquete a ser passada para o processo alvo.

Exceções

.NET Core em qualquer sistema operativo e .NET 5+ apenas em sistema operativo baseado em Unix: A plataforma atual não é suportada.

targetProcessId não é um ID de processo válido.

-ou-

A duplicação da referência do soquete falhou.

Observações

O processo alvo deve usar o Socket(SocketInformation) construtor para criar a instância duplicada do soquete.

Não chame o Socket(SocketInformation) construtor várias vezes usando o mesmo array de bytes no SocketInformation argumento de cada chamada. Se o fizeres, vais ter múltiplas instâncias geridas Socket com o mesmo socket subjacente, o que é fortemente desaconselhado.

No .NET Framework, se o processo que cria o socket usar métodos assíncronos, o processo deve primeiro definir a propriedade UseOnlyOverlappedIO para true. Caso contrário, o método assíncrono irá ligar o socket a uma porta de conclusão de E/S do processo criador, o que pode causar a inserção de an ArgumentNullException no processo alvo.

DuplicateAndClose(Int32) tem suporte limitado em Windows. Ao contrário do .NET Framework, a propriedade UseOnlyOverlappedIO é um NOP, pelo que o processo que cria o socket nunca deve chamar métodos assíncronos no socket. Uma chamada a uma operação assíncrona irá sempre ligá-la a uma porta de conclusão de E/S do processo de criação, o que pode fazer com que um ArgumentNullException seja lançado no processo alvo.

Aplica-se a