Поделиться через


TcpListener.Pending Метод

Определение

Определяет, имеются ли ожидающие запросы на подключение.

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 метод можно использовать для определения доступности подключений перед попыткой их принятия.

Применяется к

См. также раздел