TcpClient Klasse

Definition

Stellt Clientverbindungen für TCP-Netzwerkdienste bereit.

public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
    interface IDisposable
Public Class TcpClient
Implements IDisposable
Vererbung
TcpClient
Implementiert

Beispiele

Im folgenden Codebeispiel wird eine TcpClient Verbindung hergestellt.

void Connect( String^ server, String^ message )
{
   TcpClient^ client = nullptr;
   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;
      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.
      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 = 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 );
      
      // Explicit close is not necessary since TcpClient::Dispose() will be
      // called automatically in finally block.
      // stream->Close();
      // client->Close();
   }
   catch ( ArgumentNullException^ e ) 
   {
      Console::WriteLine( "ArgumentNullException: {0}", e );
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine( "SocketException: {0}", e );
   }
   finally
   {
      if (client != nullptr)
         delete client;
   }

   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;

    // Prefer 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

Hinweise

Die TcpClient Klasse bietet einfache Methoden zum Verbinden, Senden und Empfangen von Streamdaten über ein Netzwerk im synchronen Blockierungsmodus.

Um TcpClient Daten zu verbinden und zu austauschen, muss ein TcpListener oder Socket mit dem TCP ProtocolType erstellte Daten für eingehende Verbindungsanforderungen hören. Sie können eine Verbindung mit diesem Listener auf eine der folgenden beiden Arten herstellen:

  • Erstellen Sie eine der drei verfügbaren Methoden, und rufen Sie eine TcpClient der drei verfügbaren Connect Methoden auf.

  • Erstellen Sie eine TcpClient Verwendung des Hostnamens und der Portnummer des Remotehosts. Dieser Konstruktor versucht automatisch eine Verbindung.

Hinweis

Wenn Sie verbindungslose Datagrams im synchronen Blockierungsmodus senden möchten, verwenden Sie die UdpClient Klasse.

Hinweise für Vererber

Verwenden Sie die GetStream() Methode zum Senden und Empfangen von Daten, um eine NetworkStream. Rufen Sie die Write(Byte[], Int32, Int32) Read(Byte[], Int32, Int32) Methoden und Methoden des Sendens und Empfangens von NetworkStream Daten mit dem Remotehost auf. Verwenden Sie die Methode, um alle Ressourcen zu veröffentlichen, die Close(Int32) dem TcpClientZugeordneten zugeordnet sind.

Konstruktoren

TcpClient()

Initialisiert eine neue Instanz der TcpClient-Klasse.

TcpClient(AddressFamily)

Initialisiert eine neue Instanz der TcpClient-Klasse mit der angegebenen Familie.

TcpClient(IPEndPoint)

Initialisiert eine neue Instanz der TcpClient-Klasse und bindet sie an den angegebenen lokalen Endpunkt.

TcpClient(String, Int32)

Initialisiert eine neue Instanz der TcpClient-Klasse und stellt eine Verbindung mit dem angegebenen Port am angegebenen Host her.

Eigenschaften

Active

Ruft einen Wert ab, der angibt, ob eine Verbindung hergestellt wurde, oder legt diesen fest.

Available

Ruft die Datenmenge ab, die über das Netzwerk empfangen wurde und gelesen werden kann.

Client

Ruft den zugrunde liegenden Socket ab oder legt diesen fest.

Connected

Ruft einen Wert ab, der angibt, ob der zugrunde liegende Socket für einen TcpClient mit einem Remotehost verbunden ist.

ExclusiveAddressUse

Ruft einen Boolean-Wert ab, der angibt, ob der TcpClient nur die Verwendung eines Port durch einen einzigen Client zulässt, oder legt diesen fest.

LingerState

Ruft Informationen zum Nachlaufzustand des zugeordneten Sockets ab oder legt sie fest.

NoDelay

Ruft einen Wert ab, der eine Verzögerung deaktiviert, wenn Sende- oder Empfangspuffer nicht voll sind, oder legt diesen fest.

ReceiveBufferSize

Ruft die Größe des Empfangspuffers ab oder legt diese fest.

ReceiveTimeout

Ruft den Zeitraum ab, den ein TcpClient nach dem Initiieren eines Lesevorgangs auf den Datenempfang wartet, oder legt diesen fest.

SendBufferSize

Ruft die Größe des Sendepuffers ab oder legt diese fest.

SendTimeout

Ruft die Zeitspanne ab, die ein TcpClient auf den erfolgreichen Abschluss eines Sendevorgangs wartet, oder legt diese fest.

Methoden

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Remotehost wird durch eine IPAddress und eine Anschlussnummer (Int32) angegeben.

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

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Remotehost wird durch ein IPAddress-Array und eine Portnummer (Int32) angegeben.

BeginConnect(String, Int32, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Remotehost wird durch einen Hostnamen (String) und eine Anschlussnummer (Int32) angegeben.

Close()

Gibt diese TcpClient-Instanz frei und fordert an, dass die zugrundeliegende TCP-Verbindung geschlossen wird.

Connect(IPAddress, Int32)

Verbindet unter Verwendung der angegebenen IP-Adresse und Portnummer den Client mit einem TCP-Remotehost.

Connect(IPAddress[], Int32)

Verbindet unter Verwendung der angegebenen IP-Adressen und Portnummer den Client mit einem TCP-Remotehost.

Connect(IPEndPoint)

Verbindet unter Verwendung des angegebenen Endpunkts des Remotenetzwerks den Client mit einem TCP-Remotehost.

Connect(String, Int32)

Verbindet den Client mit dem angegebenen Port auf dem angegebenen Host.

ConnectAsync(IPAddress, Int32)

Stellt mit der angegebenen IP-Adresse und der angegebenen Portnummer eine Verbindung zwischen dem Client und einem TCP-Remotehost als asynchronen Vorgang her.

ConnectAsync(IPAddress, Int32, CancellationToken)

Stellt mit der angegebenen IP-Adresse und der angegebenen Portnummer eine Verbindung zwischen dem Client und einem TCP-Remotehost als asynchronen Vorgang her.

ConnectAsync(IPAddress[], Int32)

Verbindet unter Verwendung der angegebenen IP-Adressen und Portnummer als asynchroner Vorgang den Client mit einem TCP-Remotehost.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Verbindet unter Verwendung der angegebenen IP-Adressen und Portnummer als asynchroner Vorgang den Client mit einem TCP-Remotehost.

ConnectAsync(IPEndPoint)

Verbindet den Client mit einem Remote-TCP-Host mit dem angegebenen Endpunkt als asynchroner Vorgang.

ConnectAsync(IPEndPoint, CancellationToken)

Verbindet den Client mit einem Remote-TCP-Host mit dem angegebenen Endpunkt als asynchroner Vorgang.

ConnectAsync(String, Int32)

Verbindet den Client mit dem angegebenen TCP-Port auf dem angegebenen Host als asynchroner Vorgang.

ConnectAsync(String, Int32, CancellationToken)

Verbindet den Client mit dem angegebenen TCP-Port auf dem angegebenen Host als asynchroner Vorgang.

Dispose()

Gibt die vom TcpClient verwendeten verwalteten und nicht verwalteten Ressourcen frei.

Dispose(Boolean)

Gibt die von TcpClient verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

EndConnect(IAsyncResult)

Beendet einen ausstehenden asynchronen Verbindungsversuch.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Finalize()

Gibt von der TcpClient-Klasse verwendete Ressourcen frei.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetStream()

Gibt den für das Senden und Empfangen von Daten verwendeten NetworkStream zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt alle vom TcpClient verwendeten Ressourcen frei.

Gilt für

Siehe auch