TcpClient Classe

Definição

Fornece ligações aos clientes para serviços de rede TCP.

public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
    interface IDisposable
Public Class TcpClient
Implements IDisposable
Herança
TcpClient
Implementações

Exemplos

O seguinte exemplo de código estabelece uma TcpClient ligação.

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;

    // Prefer a using declaration to ensure the instance is Disposed later.
    using 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.
    NetworkStream stream = client.GetStream();

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

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

    // Receive the server 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);

    // Explicit close is not necessary since TcpClient.Dispose() will be
    // called automatically.
    // 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();
}
Shared Sub Connect(server As [String], message As [String])
   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.
      Dim port As Int32 = 13000

      ' Prefer using declaration to ensure the instance is Disposed later.
      Using client As New TcpClient(server, port)
      
         ' Translate the passed message into ASCII and store it as a Byte array.
         Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
         
         ' Get a client stream for reading and writing.
         Dim stream As NetworkStream = client.GetStream()
         
         ' Send the message to the connected TcpServer. 
         stream.Write(data, 0, data.Length)
         
         Console.WriteLine("Sent: {0}", message)
         
         ' Receive the server response.
         ' Buffer to store the response bytes.
         data = New [Byte](256) {}
         
         ' String to store the response ASCII representation.
         Dim responseData As [String] = [String].Empty
         
         ' Read the first batch of the TcpServer response bytes.
         Dim bytes As Int32 = stream.Read(data, 0, data.Length)
         responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
         Console.WriteLine("Received: {0}", responseData)
         
         ' Explicit close is not necessary since TcpClient.Dispose() will be
         ' called automatically.
         ' stream.Close()
         ' client.Close()
      End Using
   Catch e As ArgumentNullException
      Console.WriteLine("ArgumentNullException: {0}", e)
   Catch e As SocketException
      Console.WriteLine("SocketException: {0}", e)
   End Try
   
   Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
   Console.Read()
End Sub

Observações

A TcpClient classe fornece métodos simples para ligar, enviar e receber dados de fluxo através de uma rede em modo de bloqueio síncrono.

Para TcpClient poder ligar e trocar dados, um TcpListener ou Socket criado com o TCP ProtocolType deve estar a ouvir pedidos de ligação recebidos. Pode ligar-se a este ouvinte de uma das seguintes duas formas:

  • Crie um TcpClient e chame um dos três métodos disponíveis Connect .

  • Crie um TcpClient usando o nome do host e o número de porta do host remoto. Este construtor tentará automaticamente uma ligação.

Note

Se quiseres enviar datagramas sem ligação em modo de bloqueio síncrono, usa a UdpClient classe.

Notas para Herdeiros

Para enviar e receber dados, use o GetStream() método para obter um NetworkStream. Chame os Write(Byte[], Int32, Int32) métodos e Read(Byte[], Int32, Int32) do NetworkStream para enviar e receber dados com o host remoto. Use o Close(Int32) método para libertar todos os recursos associados ao TcpClient.

Construtores

Name Description
TcpClient()

Inicializa uma nova instância da TcpClient classe.

TcpClient(AddressFamily)

Inicializa uma nova instância da TcpClient classe com a família especificada.

TcpClient(IPEndPoint)

Inicializa uma nova instância da TcpClient classe e liga-a ao endpoint local especificado.

TcpClient(String, Int32)

Inicializa uma nova instância da TcpClient classe e liga-se à porta especificada no host especificado.

Propriedades

Name Description
Active

Recebe ou define um valor que indica se foi feita uma ligação.

Available

Obtém a quantidade de dados recebida da rede e que está disponível para leitura.

Client

Obtém ou define o subjacente Socket.

Connected

Recebe um valor que indica se o subjacente Socket para a TcpClient está ligado a um host remoto.

ExclusiveAddressUse

Obtém ou define um Boolean valor que especifica se permite TcpClient que apenas um cliente use uma porta.

LingerState

Obtém ou define informação sobre o estado residual do socket associado.

NoDelay

Recebe ou define um valor que desativa um atraso quando os buffers de envio ou receção não estão cheios.

ReceiveBufferSize

Obtém ou define o tamanho do buffer de receção.

ReceiveTimeout

Obtém ou define o tempo que um TcpClient irá esperar para receber dados assim que uma operação de leitura é iniciada.

SendBufferSize

Obtém ou define o tamanho do buffer de envio.

SendTimeout

Obtém ou definem o tempo TcpClient de espera para que uma operação de envio seja concluída com sucesso.

Métodos

Name Description
BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Inicia um pedido assíncrono para uma ligação remota ao host. O host remoto é especificado por um IPAddress e um número de porta (Int32).

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Inicia um pedido assíncrono para uma ligação remota ao host. O host remoto é especificado por um IPAddress array e um número de porta (Int32).

BeginConnect(String, Int32, AsyncCallback, Object)

Inicia um pedido assíncrono para uma ligação remota ao host. O host remoto é especificado por um nome de host (String) e um número de porta (Int32).

Close()

Elimina esta TcpClient instância e solicita que a ligação TCP subjacente seja encerrada.

Connect(IPAddress, Int32)

Liga o cliente a um host TCP remoto usando o endereço IP e o número de porta especificados.

Connect(IPAddress[], Int32)

Liga o cliente a um host TCP remoto usando os endereços IP e o número de porta especificados.

Connect(IPEndPoint)

Liga o cliente a um host TCP remoto usando o endpoint da rede remota especificado.

Connect(String, Int32)

Liga o cliente à porta especificada no host especificado.

ConnectAsync(IPAddress, Int32)

Liga o cliente a um host TCP remoto usando o endereço IP e número de porta especificados como uma operação assíncrona.

ConnectAsync(IPAddress[], Int32)

Liga o cliente a um host TCP remoto usando os endereços IP e o número de porta especificados como uma operação assíncrona.

ConnectAsync(String, Int32)

Liga o cliente à porta TCP especificada no host especificado como uma operação assíncrona.

Dispose()

Liberta os recursos geridos e não geridos usados pelo TcpClient.

Dispose(Boolean)

Liberta os recursos não geridos usados pelo TcpClient e opcionalmente liberta os recursos geridos.

EndConnect(IAsyncResult)

Termina uma tentativa pendente de ligação assíncrona.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Finalize()

Liberta recursos usados pela TcpClient turma.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetStream()

Devolve o NetworkStream usado para enviar e receber dados.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Liberta todos os recursos utilizados pelo TcpClient.

Aplica-se a

Ver também