Socket.DuplicateAndClose(Int32) Метод
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Дублирует ссылку сокета для конечного процесса и закрывает сокет для этого процесса.
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
- targetProcessId
- Int32
Идентификатор конечного процесса, в котором создается дубликат ссылки сокета.
Ссылка сокета, передаваемая в конечный процесс.
- Атрибуты
.NET Core в любой ОС и .NET 5+ только в ОС под управлением Unix: текущая платформа не поддерживается.
Параметр targetProcessID
не является допустимым идентификатором процесса.
-или-
Дубликат ссылки сокета не создан.
Целевой процесс должен использовать Socket(SocketInformation) конструктор для создания повторяющегося экземпляра сокета.
Не вызывайте Socket(SocketInformation) конструктор несколько раз, используя один и тот же массив байтов в аргументе SocketInformation в каждом вызове. В этом случае у вас будет несколько управляемых Socket экземпляров с одинаковым базовым сокетом, что настоятельно рекомендуется.
На платформа .NET Framework, если процесс создания сокета использует асинхронные методы, процесс должен сначала задать UseOnlyOverlappedIO для свойства значение true
. В противном случае асинхронный метод привязывает сокет к порту завершения ввода-вывода процесса создания, что может привести к возникновению в целевом ArgumentNullException процессе.
В .NET Core 1.0-3.1 этот метод не поддерживается.
В .NET 5 и более поздних версий DuplicateAndClose(Int32) имеет ограниченную поддержку в Windows. В отличие от платформа .NET Framework, UseOnlyOverlappedIO свойство является NOP, поэтому процесс создания сокета никогда не должен вызывать асинхронные методы в сокете. Вызов асинхронной операции всегда привязывает ее к порту завершения ввода-вывода процесса создания, что может привести к возникновению в целевом ArgumentNullException процессе.
Өнім | Нұсқалар |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
.NET кері байланысы
.NET — бастапқы коды ашық жоба. Пікір қалдыру үшін сілтемені таңдаңыз: