Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

TcpListener-Klasse

Überwacht Verbindungen von TCP-Netzwerkclients.

System.Object
  System.Net.Sockets.TcpListener

Namespace:  System.Net.Sockets
Assembly:  System (in System.dll)
public class TcpListener

Der TcpListener-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeTcpListener(Int32) Veraltet. Initialisiert eine neue Instanz der TcpListener-Klasse, die den angegebenen Anschluss überwacht.
Öffentliche MethodeTcpListener(IPEndPoint)Initialisiert eine neue Instanz der TcpListener-Klasse mit dem angegebenen lokalen Endpunkt.
Öffentliche MethodeTcpListener(IPAddress, Int32)Initialisiert eine neue Instanz der TcpListener-Klasse, die die eingehenden Verbindungsversuche mit der angegebenen lokalen IP-Adresse und Anschlussnummer überwacht.
Zum Seitenanfang
  NameBeschreibung
Geschützte EigenschaftActiveRuft einen Wert ab, der angibt, ob TcpListener Clientverbindungen aktiv überwacht.
Öffentliche EigenschaftExclusiveAddressUseRuft einen Boolean-Wert ab, der angibt, ob der TcpListener das Überwachen eines bestimmten Anschlusses durch nur einen einzigen zugrunde liegenden Socket zulässt, oder legt diesen fest.
Öffentliche EigenschaftLocalEndpointRuft den zugrunde liegenden EndPoint des aktuellen TcpListener ab.
Öffentliche EigenschaftServerRuft den zugrunde liegenden Netzwerk-Socket ab.
Zum Seitenanfang
  NameBeschreibung
Öffentliche MethodeAcceptSocketNimmt eine ausstehende Verbindungsanforderung an.
Öffentliche MethodeAcceptSocketAsyncNimmt eine ausstehende Aufforderung zum Aufbau einer Verbindung als asynchroner Vorgang an.
Öffentliche MethodeAcceptTcpClientNimmt eine ausstehende Verbindungsanforderung an.
Öffentliche MethodeAcceptTcpClientAsyncNimmt eine ausstehende Aufforderung zum Aufbau einer Verbindung als asynchroner Vorgang an.
Öffentliche MethodeAllowNatTraversalAktiviert oder deaktiviert die NAT-Überquerung (Netzwerkadressenübersetzung) für eine TcpListener-Instanz.
Öffentliche MethodeBeginAcceptSocketBeginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.
Öffentliche MethodeBeginAcceptTcpClientBeginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.
Öffentliche MethodeStatischer MemberCreateErstellt eine neue auf dem angegebenen Port lauschende TcpListener-Instanz.
Öffentliche MethodeEndAcceptSocketNimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen Socket zum Behandeln der Remotehostkommunikation.
Öffentliche MethodeEndAcceptTcpClientNimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen TcpClient zum Behandeln der Remotehostkommunikation.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodePendingBestimmt, ob ausstehende Verbindungsanforderungen vorliegen.
Öffentliche MethodeStart()Beginnt die Überwachung von eingehenden Verbindungsanforderungen.
Öffentliche MethodeStart(Int32)Beginnt die Überwachung eingehender Verbindungsanforderungen mit einer maximalen Anzahl ausstehender Verbindungen.
Öffentliche MethodeStopSchließt den Listener.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Die TcpListener-Klasse stellt einfache Methoden für die Überwachung und Annahme von eingehenden Verbindungsanforderungen im synchronen Blockiermodus bereit. Sie können zum Verbinden mit einem TcpListener entweder einen TcpClient oder einen Socket verwenden. Erstellen Sie einen TcpListener mit einem IPEndPoint, einer lokalen IP-Adresse und Anschlussnummer oder nur mit einer Anschlussnummer. Geben Sie als lokale IP-Adresse Any und 0 als lokale Anschlussnummer an, wenn der zugrunde liegende Dienstanbieter diese Werte zuweisen soll. In diesem Fall können Sie später mit der LocalEndpoint-Eigenschaft die zugewiesenen Informationen identifizieren.

Verwenden Sie die Start-Methode, um die Überwachung von eingehenden Verbindungsanforderungen zu beginnen. Start verweist eingehende Verbindungen in die Warteschlange, bis Sie entweder die Stop-Methode aufrufen oder MaxConnections von Verbindungen erreicht wurde. Sie können entweder mit AcceptSocket oder mit AcceptTcpClient eine Verbindung aus der Warteschlange der eingehenden Verbindungsanforderungen abrufen. Beide Methoden blockieren. Wenn Sie das Blockieren vermeiden möchten, können Sie zuerst mit der Pending-Methode bestimmen, ob sich Verbindungsanforderungen in der Warteschlange befinden.

Rufen Sie die Stop-Methode auf, um den TcpListener zu schließen.

HinweisHinweis

Die Stop-Methode schließt keine angenommenen Verbindungen. Diese müssen von Ihnen eigens geschlossen werden.

Im folgenden Codebeispiel wird ein TcpListener erstellt.


using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;

class MyTcpListener
{
  public static void Main()
  { 
    TcpListener server=null;   
    try
    {
      // Set the TcpListener on port 13000.
      Int32 port = 13000;
      IPAddress localAddr = IPAddress.Parse("127.0.0.1");

      // TcpListener server = new TcpListener(port);
      server = new TcpListener(localAddr, port);

      // Start listening for client requests.
      server.Start();

      // Buffer for reading data
      Byte[] bytes = new Byte[256];
      String data = null;

      // Enter the listening loop.
      while(true) 
      {
        Console.Write("Waiting for a connection... ");

        // Perform a blocking call to accept requests.
        // You could also user server.AcceptSocket() here.
        TcpClient client = server.AcceptTcpClient();            
        Console.WriteLine("Connected!");

        data = null;

        // Get a stream object for reading and writing
        NetworkStream stream = client.GetStream();

        int i;

        // Loop to receive all the data sent by the client.
        while((i = stream.Read(bytes, 0, bytes.Length))!=0) 
        {   
          // Translate data bytes to a ASCII string.
          data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
          Console.WriteLine("Received: {0}", data);

          // Process the data sent by the client.
          data = data.ToUpper();

          byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

          // Send back a response.
          stream.Write(msg, 0, msg.Length);
          Console.WriteLine("Sent: {0}", data);            
        }

        // Shutdown and end connection
        client.Close();
      }
    }
    catch(SocketException e)
    {
      Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
       // Stop listening for new clients.
       server.Stop();
    }


    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
  }   
}


Ein Beispiel für Clients finden Sie unter TcpClient.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1
  • SocketPermission 

    mit der ausgehende Verbindungen hergestellt oder eingehende Anforderungen angenommen werden können.

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.