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.

 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


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.