Condividi tramite


TcpListener Classe

Definizione

È in ascolto delle connessioni dai client di rete 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
Ereditarietà
TcpListener
Implementazioni

Esempio

Nell'esempio di codice seguente viene creato un oggetto 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

Vedere TcpClient per un esempio di client.

Commenti

La TcpListener classe fornisce metodi semplici che ascoltano e accettano le richieste di connessione in ingresso in modalità sincrona. È possibile usare un TcpClient oggetto o per Socket connettersi a un oggetto TcpListener. Creare un TcpListener oggetto usando , IPEndPointun indirizzo IP locale e un numero di porta o semplicemente un numero di porta. Specificare Any per l'indirizzo IP locale e 0 per il numero di porta locale se si desidera che il provider di servizi sottostante assegni automaticamente tali valori. Se si sceglie di eseguire questa operazione, è possibile usare la LocalEndpoint proprietà per identificare le informazioni assegnate, dopo la connessione del socket.

Usare il Start metodo per iniziare ad ascoltare le richieste di connessione in ingresso. Start accoderà le connessioni in ingresso fino a quando non si chiama il Stop metodo o se è stato accodato MaxConnections. AcceptSocket Usare o AcceptTcpClient per eseguire il pull di una connessione dalla coda delle richieste di connessione in ingresso. Questi due metodi verranno bloccati. Se si vuole evitare il blocco, è possibile usare prima il Pending metodo per determinare se le richieste di connessione sono disponibili nella coda.

Chiamare il Stop metodo per chiudere .TcpListener

Annotazioni

Il Stop metodo non chiude alcuna connessione accettata. L'utente è responsabile della chiusura di questi elementi separatamente.

Costruttori

Nome Descrizione
TcpListener(Int32)
Obsoleti.
Obsoleti.
Obsoleti.
Obsoleti.

Inizializza una nuova istanza della TcpListener classe in ascolto sulla porta specificata.

TcpListener(IPAddress, Int32)

Inizializza una nuova istanza della TcpListener classe in ascolto dei tentativi di connessione in ingresso sull'indirizzo IP locale e sul numero di porta specificati.

TcpListener(IPEndPoint)

Inizializza una nuova istanza della TcpListener classe con l'endpoint locale specificato.

Proprietà

Nome Descrizione
Active

Ottiene un valore che indica se TcpListener è in ascolto attivo per le connessioni client.

ExclusiveAddressUse

Ottiene o imposta un valore che specifica se TcpListener consente a un Boolean solo socket sottostante di restare in ascolto di una porta specifica.

LocalEndpoint

Ottiene l'oggetto sottostante EndPoint dell'oggetto corrente TcpListener.

Server

Ottiene la rete Socketsottostante.

Metodi

Nome Descrizione
AcceptSocket()

Accetta una richiesta di connessione in sospeso.

AcceptSocketAsync()

Accetta una richiesta di connessione in sospeso come operazione asincrona.

AcceptSocketAsync(CancellationToken)

Accetta una richiesta di connessione in sospeso come operazione asincrona annullabile.

AcceptTcpClient()

Accetta una richiesta di connessione in sospeso.

AcceptTcpClientAsync()

Accetta una richiesta di connessione in sospeso come operazione asincrona.

AcceptTcpClientAsync(CancellationToken)

Accetta una richiesta di connessione in sospeso come operazione asincrona annullabile.

AllowNatTraversal(Boolean)

Abilita o disabilita l'attraversamento NAT (Network Address Translation) in un'istanza TcpListener di .

BeginAcceptSocket(AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

BeginAcceptTcpClient(AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.

Create(Int32)

Crea una nuova TcpListener istanza di in ascolto sulla porta specificata.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente TcpListener .

EndAcceptSocket(IAsyncResult)

Accetta in modo asincrono un tentativo di connessione in ingresso e crea un nuovo Socket oggetto per gestire la comunicazione dell'host remoto.

EndAcceptTcpClient(IAsyncResult)

Accetta in modo asincrono un tentativo di connessione in ingresso e crea un nuovo TcpClient oggetto per gestire la comunicazione dell'host remoto.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Finalize()

Libera le risorse usate dalla TcpListener classe .

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Pending()

Determina se sono presenti richieste di connessione in sospeso.

Start()

Avvia l'ascolto delle richieste di connessione in ingresso.

Start(Int32)

Avvia l'ascolto delle richieste di connessione in ingresso con un numero massimo di connessioni in sospeso.

Stop()

Chiude il listener.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche