NamedPipeClientStream.Connect 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
連接到等待伺服器。
多載
Connect(TimeSpan) |
線上到指定逾時期間內的等候伺服器。 |
Connect() |
以無限的逾時值連接至等候中伺服器。 |
Connect(Int32) |
在指定的逾時限制期間內,連接到等候中的伺服器。 |
Connect(TimeSpan)
線上到指定逾時期間內的等候伺服器。
public:
void Connect(TimeSpan timeout);
public void Connect (TimeSpan timeout);
member this.Connect : TimeSpan -> unit
Public Sub Connect (timeout As TimeSpan)
參數
- timeout
- TimeSpan
等待伺服器在聯機逾時之前回應的時間量。
備註
請參閱 Connect(Int32) 備註。
適用於
Connect()
以無限的逾時值連接至等候中伺服器。
public:
void Connect();
public void Connect ();
member this.Connect : unit -> unit
Public Sub Connect ()
例外狀況
已連接用戶端。
範例
下列範例示範使用命名管道將字串從父進程傳送至子進程的方法。 這個範例會在 NamedPipeClientStream 子進程中建立 對象,然後連接到本機電腦上的管道。 您可以在 類別中看到 NamedPipeServerStream 伺服器範例。 這個範例是 針對和 NamedPipeClientStream 類別提供之較大範例的NamedPipeServerStream一部分。
using System;
using System.IO;
using System.IO.Pipes;
class PipeClient
{
static void Main(string[] args)
{
using (NamedPipeClientStream pipeClient =
new NamedPipeClientStream(".", "testpipe", PipeDirection.In))
{
// Connect to the pipe or wait until the pipe is available.
Console.Write("Attempting to connect to pipe...");
pipeClient.Connect();
Console.WriteLine("Connected to pipe.");
Console.WriteLine("There are currently {0} pipe server instances open.",
pipeClient.NumberOfServerInstances);
using (StreamReader sr = new StreamReader(pipeClient))
{
// Display the read text to the console
string temp;
while ((temp = sr.ReadLine()) != null)
{
Console.WriteLine("Received from server: {0}", temp);
}
}
}
Console.Write("Press Enter to continue...");
Console.ReadLine();
}
}
Imports System.IO
Imports System.IO.Pipes
Imports System.Security.Principal
Class PipeClient
Shared Sub Main(ByVal args As String())
Dim pipeClient As New NamedPipeClientStream("localhost", _
"testpipe", PipeDirection.In, PipeOptions.None)
' Connect to the pipe or wait until the pipe is available.
Console.WriteLine("Attempting to connect to the pipe...")
pipeClient.Connect()
Console.WriteLine("Connect to the pipe.")
Console.WriteLine("There are currently {0} pipe server instances open.", _
pipeClient.NumberOfServerInstances)
Dim sr As New StreamReader(pipeClient)
Dim temp As String
temp = sr.ReadLine()
While Not temp Is Nothing
Console.WriteLine("Received from server: {0}", temp)
temp = sr.ReadLine()
End While
Console.Write("Press Enter to continue...")
Console.ReadLine()
End Sub
End Class
備註
這個方法會 Connect(Int32) 使用無限逾時值來呼叫 方法。
此方法會等候管道實例可供使用。 Connect可能會在從 NamedPipeServerStream 物件呼叫 之前WaitForConnection傳回 ,但在WaitForConnection傳回之前Connect不會傳回 。
對象連接之後 NamedPipeClientStream 寫入管道的任何數據,但在伺服器呼叫 WaitForConnection之前,將會在呼叫 WaitForConnection之後提供給伺服器使用。
適用於
Connect(Int32)
在指定的逾時限制期間內,連接到等候中的伺服器。
public:
void Connect(int timeout);
public void Connect (int timeout);
[System.Security.SecurityCritical]
public void Connect (int timeout);
member this.Connect : int -> unit
[<System.Security.SecurityCritical>]
member this.Connect : int -> unit
Public Sub Connect (timeout As Integer)
參數
- timeout
- Int32
等候伺服器回應的毫秒數,經過這段時間即為連線逾時。
- 屬性
例外狀況
無法在指定的 timeout
期間內連接伺服器。
timeout
小於 0 且未設定為 Infinite。
已連接用戶端。
伺服器連接至另一個用戶端,而且逾時期限已過期。
備註
此方法會等候管道實例可供使用。 Connect可能會在 從呼叫 之前WaitForConnection傳回 ,但在WaitForConnection傳回之前Connect不會傳NamedPipeServerStream回 。 您可以將 參數設定 timeout
為 Infinite ,以指定無限逾時值。
對象連接之後 NamedPipeClientStream 寫入管道的任何數據,但在伺服器呼叫 WaitForConnection之前,將會在呼叫 WaitForConnection之後提供給伺服器使用。