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í.

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 = gcnew TcpClient( server,port );
      
      // Translate the passed message into ASCII and store it as a Byte array.
      array<Byte>^data = 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 = gcnew array<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 = Text::Encoding::ASCII->GetString( data, 0, 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();
}
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();
}
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
      Dim 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.
      '  Stream stream = client.GetStream();
      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 TcpServer.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)
      
      ' Close everything.
      stream.Close()
      client.Close()
   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 Socket musí protokol TCP nebo vytvořený pomocí protokolu TCP ProtocolType naslouchat příchozím požadavkům na připojení. K tomuto naslouchacímu procesu se můžete připojit jedním z následujících dvou způsobů:

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

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

Poznámka

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

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) Volejte a metody NetworkStream odesílání a Read(Byte[], Int32, Int32) 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 sadě TcpClient.

Konstruktory

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 k zadanému místnímu koncovému bodu.

TcpClient(String, Int32)

Inicializuje novou instanci TcpClient třídy a připojí se k zadanému portu zadaného hostitele.

Vlastnosti

Active

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

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 označující, zda je podkladový Socket objekt pro TcpClient připojení ke vzdálenému hostiteli.

ExclusiveAddressUse

Získá nebo nastaví Boolean hodnotu, která určuje, zda TcpClient umožňuje používat port pouze jednoho klienta.

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 pro příjem.

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

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žadavky, aby bylo uzavřeno základní 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)

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é IP adresy 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(IPAddress[], Int32, CancellationToken)

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

ConnectAsync(IPEndPoint)

Připojí klienta ke vzdálenému hostiteli TCP pomocí zadaného koncového bodu 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(String, Int32)

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

ConnectAsync(String, Int32, CancellationToken)

Připojí klienta ke zadanému portu TCP zadaného hostitele 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čí, zda se zadaný objekt rovná 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řijímání dat.

GetType()

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru 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í

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é