TcpListener Класс

Определение

Прослушивает подключения от TCP-клиентов сети.

public ref class TcpListener
public class TcpListener
type TcpListener = class
Public Class TcpListener
Наследование
TcpListener

Примеры

В следующем примере кода создается объект TcpListener.

#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Text;
using namespace System::Threading;
void main()
{
   try
   {
      
      // Set the TcpListener on port 13000.
      Int32 port = 13000;
      IPAddress^ localAddr = IPAddress::Parse( "127.0.0.1" );
      
      // TcpListener* server = new TcpListener(port);
      TcpListener^ server = gcnew TcpListener( localAddr,port );
      
      // Start listening for client requests.
      server->Start();
      
      // Buffer for reading data
      array<Byte>^bytes = gcnew array<Byte>(256);
      String^ data = nullptr;
      
      // Enter the listening loop.
      while ( true )
      {
         Console::Write( "Waiting for a connection... " );
         
         // Perform a blocking call to accept requests.
         // You could also use server.AcceptSocket() here.
         TcpClient^ client = server->AcceptTcpClient();
         Console::WriteLine( "Connected!" );
         data = nullptr;
         
         // Get a stream Object* for reading and writing
         NetworkStream^ stream = client->GetStream();
         Int32 i;
         
         // Loop to receive all the data sent by the client.
         while ( i = stream->Read( bytes, 0, bytes->Length ) )
         {
            
            // Translate data bytes to a ASCII String*.
            data = Text::Encoding::ASCII->GetString( bytes, 0, i );
            Console::WriteLine( "Received: {0}", data );
            
            // Process the data sent by the client.
            data = data->ToUpper();
            array<Byte>^msg = Text::Encoding::ASCII->GetBytes( data );
            
            // Send back a response.
            stream->Write( msg, 0, msg->Length );
            Console::WriteLine( "Sent: {0}", data );
         }
         
         // Shutdown and end connection
         client->Close();
      }
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine( "SocketException: {0}", e );
   }

   Console::WriteLine( "\nHit enter to continue..." );
   Console::Read();
}
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
  public static void Main()
  {
    TcpListener server=null;
    try
    {
      // Set the TcpListener on port 13000.
      Int32 port = 13000;
      IPAddress localAddr = IPAddress.Parse("127.0.0.1");

      // TcpListener server = new TcpListener(port);
      server = new TcpListener(localAddr, port);

      // Start listening for client requests.
      server.Start();

      // Buffer for reading data
      Byte[] bytes = new Byte[256];
      String data = null;

      // Enter the listening loop.
      while(true)
      {
        Console.Write("Waiting for a connection... ");

        // Perform a blocking call to accept requests.
        // You could also use server.AcceptSocket() here.
        TcpClient client = server.AcceptTcpClient();
        Console.WriteLine("Connected!");

        data = null;

        // Get a stream object for reading and writing
        NetworkStream stream = client.GetStream();

        int i;

        // Loop to receive all the data sent by the client.
        while((i = stream.Read(bytes, 0, bytes.Length))!=0)
        {
          // Translate data bytes to a ASCII string.
          data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
          Console.WriteLine("Received: {0}", data);

          // Process the data sent by the client.
          data = data.ToUpper();

          byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

          // Send back a response.
          stream.Write(msg, 0, msg.Length);
          Console.WriteLine("Sent: {0}", data);
        }

        // Shutdown and end connection
        client.Close();
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
       // Stop listening for new clients.
       server.Stop();
    }

    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
  }
}
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text

Class MyTcpListener

    Public Shared Sub Main()

    Dim server As TcpListener
    server=nothing
        Try
            ' Set the TcpListener on port 13000.
         Dim port As Int32 = 13000
         Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")

         server = New TcpListener(localAddr, port)
         
         ' Start listening for client requests.
         server.Start()
         
         ' Buffer for reading data
            Dim bytes(1024) As Byte
            Dim data As String = Nothing
         
         ' Enter the listening loop.
         While True
            Console.Write("Waiting for a connection... ")
            
            ' Perform a blocking call to accept requests.
            ' You could also use server.AcceptSocket() here.
            Dim client As TcpClient = server.AcceptTcpClient()
            Console.WriteLine("Connected!")
            
            data = Nothing
            
            ' Get a stream object for reading and writing
            Dim stream As NetworkStream = client.GetStream()
            
            Dim i As Int32
            
            ' Loop to receive all the data sent by the client.
            i = stream.Read(bytes, 0, bytes.Length)
            While (i <> 0) 
               ' Translate data bytes to a ASCII string.
               data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
                    Console.WriteLine("Received: {0}", data)
               
               ' Process the data sent by the client.
               data = data.ToUpper()
                    Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
               
               ' Send back a response.
               stream.Write(msg, 0, msg.Length)
                    Console.WriteLine("Sent: {0}", data)
              
               i = stream.Read(bytes, 0, bytes.Length)

            End While
            
            ' Shutdown and end connection
            client.Close()
         End While
      Catch e As SocketException
         Console.WriteLine("SocketException: {0}", e)
      Finally
         server.Stop()
      End Try
      
      Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
      Console.Read()
   End Sub

End Class

См TcpClient . пример клиента.

Комментарии

Класс TcpListener предоставляет простые методы, которые прослушивают и принимают входящие запросы на подключение в блокирующей синхронном режиме. You can use either a TcpClient or a Socket to connect with a TcpListener. TcpListener Создайте с помощью IPEndPoint, локальный IP-адрес и номер порта или просто номер порта. Укажите Any локальный IP-адрес и 0 для номера локального порта, если вы хотите, чтобы базовый поставщик услуг назначил эти значения. Если вы решили сделать это, вы можете использовать LocalEndpoint свойство для идентификации назначенных сведений после подключения сокета.

Start Используйте метод, чтобы начать прослушивание входящих запросов на подключение. Start будет помещать входящие подключения в очередь, пока не вызовете Stop метод или не в MaxConnectionsочереди. AcceptSocket Используйте или AcceptTcpClient извлеките подключение из очереди входящих запросов на подключение. Эти два метода блокируются. Если вы хотите избежать блокировки, сначала можно использовать Pending метод, чтобы определить, доступны ли запросы на подключение в очереди.

Stop Вызовите метод, чтобы закрыть .TcpListener

Примечание

Метод Stop не закрывает принятые подключения. Вы несете ответственность за закрытие этих отдельно.

Конструкторы

TcpListener(Int32)
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Инициализирует новый экземпляр класса TcpListener, который ожидает передачу данных для указанного порта.

TcpListener(IPAddress, Int32)

Инициализирует новый экземпляр класса TcpListener, который выполняет ожидание входящих попыток подключения для заданных локального IP-адреса и номера локального порта.

TcpListener(IPEndPoint)

Инициализирует новый экземпляр класса TcpListener с заданной локальной конечной точкой.

Свойства

Active

Получает значение, указывающее, является ли активным объект TcpListener, выполняющий прослушивание клиентских подключений.

ExclusiveAddressUse

Возвращает или задает значение Boolean, указывающее, позволяет ли объект TcpListener осуществлять ожидание передачи данных только на одном основном сокете на указанном порту.

LocalEndpoint

Получает основной объект EndPoint для текущего объекта TcpListener.

Server

Получает основной сетевой объект Socket.

Методы

AcceptSocket()

Принимает ожидающий запрос на подключение.

AcceptSocketAsync()

Принимает запрос ожидающего подключения как асинхронную операцию.

AcceptSocketAsync(CancellationToken)

Принимает ожидающий запрос на подключение как отменяемую асинхронную операцию.

AcceptTcpClient()

Принимает ожидающий запрос на подключение.

AcceptTcpClientAsync()

Принимает запрос ожидающего подключения как асинхронную операцию.

AcceptTcpClientAsync(CancellationToken)

Принимает ожидающий запрос на подключение в качестве отменяемой асинхронной операции.

AllowNatTraversal(Boolean)

Включает или отключает обход механизма преобразования сетевых адресов (NAT) для экземпляра TcpListener.

BeginAcceptSocket(AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

BeginAcceptTcpClient(AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

Create(Int32)

Создает Новый экземпляр TcpListener, который должен прослушивать на определенном порту.

EndAcceptSocket(IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом.

EndAcceptTcpClient(IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект TcpClient для связи с удаленным узлом.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, используемые классом TcpListener.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Pending()

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

Start()

Запускает ожидание входящих запросов на подключение.

Start(Int32)

Запускает ожидание входящих запросов на подключение с максимальным числом ожидающих подключений.

Stop()

Закрывает слушатель.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

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