2 von 5 fanden dies hilfreich - Dieses Thema bewerten.

TcpClient-Klasse

Stellt Clientverbindungen für TCP-Netzwerkdienste bereit.

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

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

Die TcpClient-Klasse stellt einfache Methoden für die Verbindung, das Senden und Empfangen von Streamdaten in einem Netzwerk im synchronen Blockiermodus bereit.

Damit der TcpClient eine Verbindung herstellen und Daten austauschen kann, muss ein TcpListener oder Socket, der mit dem TCP-ProtocolType erstellt wurde, eingehende Verbindungsanforderungen überwachen. Sie können eine Verbindung mit diesem Listener auf zwei verschiedene Arten herstellen:

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

  • Erstellen Sie einen TcpClient mit dem Hostnamen und der Anschlussnummer des Remotehosts. Dieser Konstruktor versucht automatisch, eine Verbindung herzustellen.

HinweisHinweis

Verwenden Sie die UdpClient-Klasse, wenn Sie verbindungslose Datagramme im synchronen Blockiermodus senden möchten.

Hinweise für Erben Rufen Sie zum Senden und Empfangen von Daten einen NetworkStream mithilfe der GetStream-Methode ab. Rufen Sie die Write-Methode und die Read-Methode des NetworkStream auf, um Daten mit dem Remotehost senden und empfangen zu können. Mit der Close-Methode können Sie alle dem TcpClient zugeordneten Ressourcen freigeben.

Im folgenden Codebeispiel wird eine TcpClient-Verbindung hergestellt.

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  mit der ausgehende Verbindungen hergestellt oder eingehende Anforderungen angenommen werden können.
System.Object
  System.Net.Sockets.TcpClient
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)