Questa documentazione è stata archiviata e non viene gestita.

Classe TcpClient

Aggiornamento: novembre 2007

Fornisce le connessioni client per i servizi di rete TCP.

Spazio dei nomi:  System.Net.Sockets
Assembly:  System (in System.dll)

public class TcpClient : IDisposable
public class TcpClient implements IDisposable
public class TcpClient implements IDisposable

La classe TcpClient fornisce metodi semplici per la connessione, l'invio e la ricezione di dati relativi al flusso in rete in modalità di blocco sincrono.

Per consentire al TcpClient di stabilire la connessione scambiare dati, è necessario che un TcpListener o un Socket creati con il ProtocolType TCP siano in attesa delle richieste di connessione in ingresso. È possibile connettersi al listener effettuando una delle seguenti operazioni:

  • Creare un TcpClient e chiamare uno dei seguenti tre metodi Connect disponibili.

  • Creare un TcpClient utilizzando il nome host e il numero di porta dell'host remoto. La connessione verrà tentata automaticamente da questo costruttore.

Nota:

Per inviare datagrammi senza connessione in modalità di blocco sincrona, utilizzare la classe UdpClient.

Note per gli eredi:

Per inviare e ricevere dati, utilizzare il metodo GetStream per ottenere un NetworkStream. Chiamare i metodi Write e Read del NetworkStream per inviare e ricevere dati con l'host remoto. Utilizzare il metodo Close per rilasciare tutte le risorse associate a un TcpClient.

Nell'esempio di codice riportato di seguito viene stabilita una connessione al TcpClient.

static void Connect(String server, String message) 
{
  try 
  {
    // Create a TcpClient.
    // Note, for this client to work you need to have a TcpServer 
    // connected to the same address as specified by the server, port
    // combination.
    Int32 port = 13000;
    TcpClient client = new TcpClient(server, port);

    // Translate the passed message into ASCII and store it as a Byte array.
    Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);         

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

    NetworkStream stream = client.GetStream();

    // Send the message to the connected TcpServer. 
    stream.Write(data, 0, data.Length);

    Console.WriteLine("Sent: {0}", message);         

    // Receive the TcpServer.response.

    // Buffer to store the response bytes.
    data = new Byte[256];

    // String to store the response ASCII representation.
    String responseData = String.Empty;

    // Read the first batch of the TcpServer response bytes.
    Int32 bytes = stream.Read(data, 0, data.Length);
    responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
    Console.WriteLine("Received: {0}", responseData);         

    // Close everything.
    stream.Close();         
    client.Close();         
  } 
  catch (ArgumentNullException e) 
  {
    Console.WriteLine("ArgumentNullException: {0}", e);
  } 
  catch (SocketException e) 
  {
    Console.WriteLine("SocketException: {0}", e);
  }

  Console.WriteLine("\n Press Enter to continue...");
  Console.Read();
}


static void Connect(String server, String message)
{
    try {
        // Create a TcpClient.
        // Note, for this client to work you need to have a TcpServer 
        // connected to the same address as specified by the server, port
        // combination.
        Int32 port = (Int32)13000;
        TcpClient client = new TcpClient(server, (int)port);

        // Translate the passed message into ASCII and store
        // it as a Byte array.
        System.Byte data[] = (System.Byte[])
            System.Text.Encoding.get_ASCII().GetBytes(message);

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

        // Send the message to the connected TcpServer. 
        stream.Write((ubyte[])data, 0, data.length);
        Console.WriteLine("Sent: {0}", message);

        // Receive the TcpServer.response.
        // Buffer to store the response bytes.
        data = new System.Byte[256];

        // String to store the response ASCII representation.
        String responseData = "";

        // Read the first batch of the TcpServer response bytes.
        Int32 bytes = (Int32)stream.Read((ubyte[])data, 0, data.length);
        responseData = System.Text.Encoding.get_ASCII().GetString(
            (ubyte[])data, 0, (int)bytes);
        Console.WriteLine("Received: {0}", responseData);

        // Close everything.
        client.Close();
    }
    catch (ArgumentNullException e) {
        Console.WriteLine("ArgumentNullException: {0}", e);
    }
    catch (SocketException e) {
        Console.WriteLine("SocketException: {0}", e);
    }
    Console.WriteLine("\n Press Enter to continue...");
    Console.Read();
} //Connect


  • SocketPermission 

    Autorizzazione a stabilire una connessione in uscita o accettare una richiesta in arrivo.

System.Object
  System.Net.Sockets.TcpClient

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile per Smartphone, Windows Mobile per Pocket PC

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supportato in: 3.5, 2.0, 1.0
Mostra: