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.
Vengono attese le connessioni dai client di rete TCP.
public ref class TcpListener
public ref class TcpListener : IDisposable
public class TcpListener
public class TcpListener : IDisposable
type TcpListener = class
type TcpListener = class
interface IDisposable
Public Class TcpListener
Public Class TcpListener
Implements IDisposable
- Ereditarietà
-
TcpListener
- Implementazioni
Esempio
Nell'esempio di codice seguente viene creato un TcpListeneroggetto .
#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.
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 client.
Commenti
La TcpListener classe fornisce metodi semplici in ascolto e accettare richieste di connessione in ingresso nel blocco della modalità sincrona. È possibile usare un oggetto TcpClient o per Socket connettersi a un TcpListeneroggetto . Create un TcpListener oggetto usando , un IPEndPointindirizzo IP locale e un numero di porta o solo un numero di porta. Specificare Any per l'indirizzo IP locale e 0 per il numero di porta locale se si vuole che il provider di servizi sottostanti assegnare 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 finché non si chiama il Stop metodo o ha accodato MaxConnections. AcceptSocket Usare o AcceptTcpClient per eseguire il pull di una connessione dalla coda della richiesta di connessione in ingresso. Questi due metodi bloccano. 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
Nota
Il Stop metodo non chiude alcuna connessione accettata. È responsabile della chiusura di queste operazioni separatamente.
Costruttori
TcpListener(Int32) |
Obsoleti.
Obsoleti.
Obsoleti.
Obsoleti.
Inizializza una nuova istanza della classe TcpListener che è in attesa sulla porta specificata. |
TcpListener(IPAddress, Int32) |
Inizializza una nuova istanza della classe TcpListener in attesa dei tentativi di connessione in ingrasso sull'indirizzo IP e sul numero di porta specificati. |
TcpListener(IPEndPoint) |
Inizializza una nuova istanza della classe TcpListener con l'endpoint locale specificato. |
Proprietà
Active |
Ottiene un valore che indica se TcpListener è attivamente in attesa di connessioni client. |
ExclusiveAddressUse |
Ottiene o imposta un valore Boolean che specifica se il TcpListener consente a un unico socket sottostante di restare in attesa di una porta specifica. |
LocalEndpoint |
Ottiene il EndPoint sottostante del TcpListener corrente. |
Server |
Ottiene il Socket di rete sottostante. |
Metodi
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 di TcpListener. |
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 istanza di TcpListener in ascolto sulla porta specificata. |
Dispose() |
Rilascia tutte le risorse usate dall'istanza corrente di TcpListener. |
EndAcceptSocket(IAsyncResult) |
Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto. |
EndAcceptTcpClient(IAsyncResult) |
Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto TcpClient per gestire la comunicazione con l'host remoto. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Finalize() |
Rilascia le risorse usate dalla classe TcpListener. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Pending() |
Determina se sono presenti richieste di connessione in sospeso. |
Start() |
Avvia l'attesa delle richieste di connessione in ingresso. |
Start(Int32) |
Avvia l'attesa delle richieste di connessione in ingresso specificando un numero massimo di possibili connessioni in sospeso. |
Stop() |
Chiude il listener. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |