Socket.DuplicateAndClose(Int32) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
대상 프로세스에 대한 소켓 참조를 복제하고 이 프로세스의 소켓을 닫습니다.
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
소켓 참조의 복제본을 만드는 대상 프로세스의 ID입니다.
반환
대상 프로세스에 전달될 소켓 참조입니다.
- 특성
예외
모든 OS의 .NET Core 및 Unix 기반 OS의 .NET 5 이상만 해당: 현재 플랫폼은 지원되지 않습니다.
설명
대상 프로세스는 생성자를 사용하여 Socket(SocketInformation) 중복 소켓 instance 만들어야 합니다.
각 호출의 인수에서 Socket(SocketInformation)SocketInformation 동일한 바이트 배열을 사용하여 생성자를 여러 번 호출하지 마세요. 이렇게 하면 동일한 기본 소켓을 사용하는 관리되는 인스턴스가 여러 Socket 개 있으므로 권장되지 않습니다.
.NET Framework 소켓을 만드는 프로세스에서 비동기 메서드를 사용하는 경우 프로세스는 먼저 속성을 true
로 설정 UseOnlyOverlappedIO 해야 합니다. 그렇지 않으면 비동기 메서드는 소켓을 만들기 프로세스의 I/O 완료 포트 에 바인딩하여 대상 프로세스에서 이 ArgumentNullException throw될 수 있습니다.
.NET Core 1.0-3.1에서 이 메서드는 지원되지 않습니다.
.NET 5 이상 DuplicateAndClose(Int32) 에서는 Windows에서 지원이 제한됩니다. .NET Framework UseOnlyOverlappedIO 달리 속성은 NOP이므로 소켓을 만드는 프로세스는 소켓에서 비동기 메서드를 호출해서는 안 됩니다. 비동기 작업에 대한 호출은 항상 생성 프로세스의 I/O 완료 포트 에 바인딩되므로 대상 프로세스에서 이 ArgumentNullException throw될 수 있습니다.
적용 대상
.NET