TcpClient Třída

Definice

Poskytuje klientská připojení pro síťové služby TCP.

public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
    interface IDisposable
Public Class TcpClient
Implements IDisposable
Dědičnost
TcpClient
Implementuje

Příklady

Následující příklad kódu vytvoří TcpClient připojení.

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

Poznámky

Třída TcpClient poskytuje jednoduché metody pro připojení, odesílání a příjem dat datového proudu přes síť v synchronním režimu blokování.

Aby bylo možné TcpClient připojit a vyměňovat data, TcpListener musí příchozí požadavky na připojení naslouchat příchozím požadavkům na připojení nebo Socket vytvořené pomocí protokolu TCP ProtocolType . K tomuto naslouchacímu procesu se můžete připojit jedním z následujících dvou způsobů:

  • Vytvořte TcpClient a zavolejte jednu ze tří dostupných Connect metod.

  • Vytvořte TcpClient název hostitele a číslo portu vzdáleného hostitele. Tento konstruktor se automaticky pokusí o připojení.

Note

Pokud chcete odesílat datagramy bez připojení v synchronním režimu blokování, použijte UdpClient třídu.

Poznámky pro dědice

Chcete-li odesílat a přijímat data, použijte metodu GetStream()NetworkStreamk získání . Write(Byte[], Int32, Int32) Volání metod odesílání Read(Byte[], Int32, Int32)NetworkStream a přijímání dat pomocí vzdáleného hostitele Použijte metodu Close(Int32) k uvolnění všech prostředků přidružených k .TcpClient

Konstruktory

Name Description
TcpClient()

Inicializuje novou instanci TcpClient třídy.

TcpClient(AddressFamily)

Inicializuje novou instanci TcpClient třídy se zadanou rodinou.

TcpClient(IPEndPoint)

Inicializuje novou instanci TcpClient třídy a vytvoří vazbu na zadaný místní koncový bod.

TcpClient(String, Int32)

Inicializuje novou instanci TcpClient třídy a připojí se k zadanému portu na zadaném hostiteli.

Vlastnosti

Name Description
Active

Získá nebo nastaví hodnotu, která označuje, zda bylo připojení provedeno.

Available

Získá množství dat přijatých ze sítě a je k dispozici ke čtení.

Client

Získá nebo nastaví základní Socket.

Connected

Získá hodnotu určující, zda je podklad Socket pro připojení TcpClient ke vzdálenému hostiteli.

ExclusiveAddressUse

Získá nebo nastaví Boolean hodnotu, která určuje, zda TcpClient umožňuje, aby port používal pouze jeden klient.

LingerState

Získá nebo nastaví informace o stavu přetrvání přidruženého soketu.

NoDelay

Získá nebo nastaví hodnotu, která zakáže zpoždění při odesílání nebo příjmu vyrovnávací paměti nejsou plné.

ReceiveBufferSize

Získá nebo nastaví velikost vyrovnávací paměti příjmu.

ReceiveTimeout

Získá nebo nastaví dobu TcpClient , po kterou bude čekat na příjem dat po zahájení operace čtení.

SendBufferSize

Získá nebo nastaví velikost vyrovnávací paměti pro odesílání.

SendTimeout

Získá nebo nastaví dobu TcpClient , po kterou bude čekat na úspěšné dokončení operace odeslání.

Metody

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

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen číslem IPAddress portu a číslem portu (Int32).

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

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen polem IPAddress a číslem portu (Int32).

BeginConnect(String, Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Vzdálený hostitel je určen názvem hostitele (String) a číslem portu (Int32).

Close()

Odstraní tuto TcpClient instanci a požádá o uzavření základního připojení TCP.

Connect(IPAddress, Int32)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu.

Connect(IPAddress[], Int32)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu.

Connect(IPEndPoint)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu vzdálené sítě.

Connect(String, Int32)

Připojí klienta k zadanému portu na zadaném hostiteli.

ConnectAsync(IPAddress, Int32, CancellationToken)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu jako asynchronní operace.

ConnectAsync(IPAddress, Int32)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadané IP adresy a čísla portu jako asynchronní operace.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu jako asynchronní operace.

ConnectAsync(IPAddress[], Int32)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaných IP adres a čísla portu jako asynchronní operace.

ConnectAsync(IPEndPoint, CancellationToken)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu jako asynchronní operace.

ConnectAsync(IPEndPoint)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu jako asynchronní operace.

ConnectAsync(String, Int32, CancellationToken)

Připojí klienta k zadanému portu TCP na zadaném hostiteli jako asynchronní operaci.

ConnectAsync(String, Int32)

Připojí klienta k zadanému portu TCP na zadaném hostiteli jako asynchronní operaci.

Dispose()

Uvolní spravované a nespravované prostředky používané nástrojem TcpClient.

Dispose(Boolean)

Uvolní nespravované prostředky používané TcpClient a volitelně uvolní spravované prostředky.

EndConnect(IAsyncResult)

Ukončí čekající asynchronní pokus o připojení.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Finalize()

Uvolní prostředky používané TcpClient třídou.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetStream()

Vrátí použitou NetworkStream k odesílání a příjmu dat.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Uvolní všechny prostředky používané nástrojem TcpClient.

Platí pro

Viz také