TcpListener Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
È 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) |