TcpListener.Pending 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
決定是否有暫止連接要求存在。
public:
bool Pending();
public bool Pending ();
member this.Pending : unit -> bool
Public Function Pending () As Boolean
傳回
如果連接為暫止,則為 true
,否則為 false
。
例外狀況
尚未以呼叫 Start() 來啟動接聽項。
範例
下列程式代碼範例會 Pending 檢查 方法。 如果連接要求正在等候接受,則會 AcceptTcpClient 呼叫 方法。
try
{
// Use the Pending method to poll the underlying socket instance for client connection requests.
TcpListener^ tcpListener = gcnew TcpListener( portNumber );
tcpListener->Start();
if ( !tcpListener->Pending() )
{
Console::WriteLine( "Sorry, no connection requests have arrived" );
}
else
{
//Accept the pending client connection and return a TcpClient object^ initialized for communication.
TcpClient^ tcpClient = tcpListener->AcceptTcpClient();
// Using the RemoteEndPoint property.
Console::WriteLine( "I am listening for connections on {0} on port number {1}",
IPAddress::Parse( ( (IPEndPoint^)(tcpListener->LocalEndpoint) )->Address->ToString() ),
( (IPEndPoint^)(tcpListener->LocalEndpoint) )->Port );
const int portNumber = 13;
try
{
// Use the Pending method to poll the underlying socket instance for client connection requests.
IPAddress ipAddress = Dns.Resolve("localhost").AddressList[0];
TcpListener tcpListener = new TcpListener(ipAddress, portNumber);
tcpListener.Start();
if (!tcpListener.Pending())
{
Console.WriteLine("Sorry, no connection requests have arrived");
}
else
{
//Accept the pending client connection and return a TcpClient object initialized for communication.
TcpClient tcpClient = tcpListener.AcceptTcpClient();
// Using the RemoteEndPoint property.
Console.WriteLine("I am listening for connections on " +
IPAddress.Parse(((IPEndPoint)tcpListener.LocalEndpoint).Address.ToString()) +
"on port number " + ((IPEndPoint)tcpListener.LocalEndpoint).Port.ToString());
//Close the tcpListener and tcpClient instances
tcpClient.Close();
}
tcpListener.Stop();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Try
Dim ipAddress As IPAddress = Dns.Resolve("localhost").AddressList(0)
Dim tcpListener As New TcpListener(ipAddress, portNumber)
tcpListener.Start()
' Use the Pending method to poll the underlying socket instance for client connection requests.
If Not tcpListener.Pending() Then
Console.WriteLine("Sorry, no connection requests have arrived")
Else
'Accept the pending client connection and return a TcpClient object initialized for communication.
Dim tcpClient As TcpClient = tcpListener.AcceptTcpClient()
' Using the RemoteEndPoint property.
Console.Write("I am listening for connections on ")
Console.Writeline(IPAddress.Parse(CType(tcpListener.LocalEndpoint, IPEndPoint).Address.ToString()))
Console.Write("on port number ")
Console.Write(CType(tcpListener.LocalEndpoint, IPEndPoint).Port.ToString())
備註
這個非封鎖方法會判斷是否有任何擱置的連線要求。 AcceptSocket由於和 AcceptTcpClient 方法會封鎖執行,Start直到方法排入傳入連線要求佇列之前,Pending方法可用來判斷連線是否可用,然後再嘗試接受它們。