TcpListener Класс

Определение

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

public ref class TcpListener : IDisposable
public ref class TcpListener
public class TcpListener : IDisposable
public class TcpListener
type TcpListener = class
    interface IDisposable
type TcpListener = class
Public Class TcpListener
Implements IDisposable
Public Class TcpListener
Наследование
TcpListener
Реализации

Примеры

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

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.
        using 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);
        }
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
      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 предоставляет простые методы, которые прослушивают и принимают входящие запросы подключения в блокирующей синхронном режиме. Вы можете использовать либо a TcpClient , либо Socket для подключения с помощью TcpListener. TcpListener Создайте с помощью локального IPEndPointIP-адреса и номера порта или просто номер порта. Укажите 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 экземпляр для прослушивания указанного порта.

Dispose()

Освобождает все ресурсы, используемые текущим 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)

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

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