Socket.DuplicateAndClose(Int32) Socket.DuplicateAndClose(Int32) Socket.DuplicateAndClose(Int32) Socket.DuplicateAndClose(Int32) Method

定義

ターゲット プロセスのソケット参照を複製してこのプロセスのソケットを閉じます。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

パラメーター

targetProcessId
Int32 Int32 Int32 Int32

ソケット参照の複製が作成されるターゲット プロセスの ID。The ID of the target process where a duplicate of the socket reference is created.

戻り値

ターゲット プロセスに渡されるソケット参照。The socket reference to be passed to the target process.

例外

targetProcessID が有効なプロセス ID ではありません。targetProcessID is not a valid process id. - または --or- ソケット参照の複製に失敗しました。Duplication of the socket reference failed.

注釈

ターゲットプロセスでは、 Socketを使用して、重複するソケットインスタンスを作成する必要があります。The target process should use Socket to create the duplicate socket instance.

各呼び出しの引数Socketと同じバイト配列を使用してコンストラクターを複数回呼び出す場合は、基になる同じSocketソケットを使用して複数のマネージインスタンスを作成します。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. この方法は推奨されません。This practice is strongly discouraged.

ソケットを作成するプロセスで非同期メソッド (BeginReceiveまたはBeginSend) が使用されている場合は、まず、このUseOnlyOverlappedIOプロパティを true に設定する必要があります。そうしないと、ソケットは作成プロセスの完了ポートにバインドされるため、ArgumentNullExceptionターゲットプロセスでスローされます。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.

適用対象