(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Socket-Klasse

Implementiert die Berkeley-Sockets-Schnittstelle.

System.Object
  System.Net.Sockets.Socket

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

public class Socket : IDisposable

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

  NameBeschreibung
Öffentliche MethodeSocket(SocketInformation)Initialisiert eine neue Instanz der Socket-Klasse mit dem angegebenen Wert, der von DuplicateAndClose zurückgegeben wird.
Öffentliche MethodeSocket(SocketType, ProtocolType)Initialisiert eine neue Instanz der Socket-Klasse unter Verwendung der angegebenen Sockettyps und Protokolls.
Öffentliche MethodeSocket(AddressFamily, SocketType, ProtocolType)Initialisiert eine neue Instanz der Socket-Klasse unter Verwendung der angegebenen Adressfamilie sowie des angegebenen Sockettyps und Protokolls.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftAddressFamilyRuft die Adressfamilie des Socket ab.
Öffentliche EigenschaftAvailableRuft die Datenmenge ab, die über das Netzwerk empfangen wurde und gelesen werden kann.
Öffentliche EigenschaftBlockingRuft einen Wert ab, der angibt, ob sich der Socket im blockierenden Modus befindet.
Öffentliche EigenschaftConnectedRuft einen Wert ab, der angibt, ob ein Socket mit dem Remotehost des letzten Send-Vorgangs oder Receive-Vorgangs verbunden ist.
Öffentliche EigenschaftDontFragmentRuft einen Boolean-Wert ab, der angibt, ob der Socket die Fragmentierung von IP (Internet Protocol)-Datagrammen zulässt, oder legt diesen fest.
Öffentliche EigenschaftDualModeRuft einen Boolean-Wert ab oder legt ihn fest, der angibt, ob Socket ein DualModussocket ist, der für IPv4 und IPv6 verwendet wird.
Öffentliche EigenschaftEnableBroadcastRuft einen Boolean-Wert ab, der angibt, ob der Socket Broadcastpakete senden oder empfangen kann, oder legt diesen fest.
Öffentliche EigenschaftExclusiveAddressUseRuft einen Boolean-Wert ab, der angibt, ob der Socket das Binden nur eines einzigen Prozesses an einen Anschluss zulässt, oder legt diesen fest.
Öffentliche EigenschaftHandleRuft das Betriebssystemhandle für den Socket ab.
Öffentliche EigenschaftIsBoundRuft einen Wert ab, der angibt, ob der Socket an einen bestimmten lokalen Anschluss gebunden ist.
Öffentliche EigenschaftLingerStateRuft einen Wert ab, der angibt, ob der Socket bei einem Versuch, alle ausstehenden Daten zu senden, das Schließen eines Sockets verzögert, oder legt diesen fest.
Öffentliche EigenschaftLocalEndPointRuft den lokalen Endpunkt ab.
Öffentliche EigenschaftMulticastLoopbackRuft einen Wert ab, der angibt, ob ausgehende Multicastpakete an die sendende Anwendung übermittelt werden, oder legt diesen fest.
Öffentliche EigenschaftNoDelayRuft einen Boolean-Wert ab, der angibt, ob der Stream-Socket den Nagle-Algorithmus verwendet, oder legt diesen fest.
Öffentliche EigenschaftStatischer MemberOSSupportsIPv4Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv4 (Internet Protocol, Version 4) unterstützen.
Öffentliche EigenschaftStatischer MemberOSSupportsIPv6Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv6 (Internet Protocol, Version 6) unterstützen.
Öffentliche EigenschaftProtocolTypeRuft den Protokolltyp des Socket ab.
Öffentliche EigenschaftReceiveBufferSizeRuft einen Wert ab, der die Größe des Empfangspuffers des Socket angibt, oder legt diesen fest.
Öffentliche EigenschaftReceiveTimeoutRuft einen Wert ab, der die Zeitspanne bis zum Timeout eines synchronen Receive-Aufrufs angibt, oder legt diesen fest.
Öffentliche EigenschaftRemoteEndPointRuft den Remoteendpunkt ab.
Öffentliche EigenschaftSendBufferSizeRuft einen Wert ab, der die Größe des Sendepuffers für den Socket angibt, oder legt diesen fest.
Öffentliche EigenschaftSendTimeoutRuft einen Wert ab, der die Zeitspanne bis zum Timeout eines synchronen Send-Aufrufs angibt, oder legt diesen fest.
Öffentliche EigenschaftSocketTypeRuft den Typ der Socket ab.
Öffentliche EigenschaftStatischer MemberSupportsIPv4 Veraltet. Ruft einen Wert ab, der angibt, ob IPv4-Unterstützung verfügbar und auf dem aktuellen Host aktiviert ist.
Öffentliche EigenschaftStatischer MemberSupportsIPv6 Veraltet. Ruft einen Wert ab, der angibt, ob das Framework IPv6 für bestimmte veraltete Dns-Member unterstützt.
Öffentliche EigenschaftTtlRuft einen Wert ab, der die Gültigkeitsdauer (TTL) von IP (Internet Protocol)-Paketen angibt, die vom Socket gesendet werden.
Öffentliche EigenschaftUseOnlyOverlappedIOGibt an, ob der Socket nur den Modus für überlappende E/A-Vorgänge verwenden soll.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeAcceptErstellt einen neuen Socket für eine neu erstellte Verbindung.
Öffentliche MethodeAcceptAsyncBeginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.
Öffentliche MethodeBeginAccept(AsyncCallback, Object)Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.
Öffentliche MethodeBeginAccept(Int32, AsyncCallback, Object)Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.
Öffentliche MethodeBeginAccept(Socket, Int32, AsyncCallback, Object)Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung von einem angegebenen Socket anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.
Öffentliche MethodeBeginConnect(EndPoint, AsyncCallback, Object)Beginnt eine asynchrone Anforderung einer Remotehostverbindung.
Öffentliche MethodeBeginConnect(IPAddress, Int32, AsyncCallback, Object)Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch eine IPAddress und eine Anschlussnummer angegeben.
Öffentliche MethodeBeginConnect(IPAddress[], Int32, AsyncCallback, Object)Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch ein IPAddress-Array und eine Anschlussnummer angegeben.
Öffentliche MethodeBeginConnect(String, Int32, AsyncCallback, Object)Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch einen Hostnamen und eine Anschlussnummer angegeben.
Öffentliche MethodeBeginDisconnectBeginnt eine asynchrone Anforderung zum Trennen der Verbindung mit einem Remoteendunkt.
Öffentliche MethodeBeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.
Öffentliche MethodeBeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.
Öffentliche MethodeBeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.
Öffentliche MethodeBeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.
Öffentliche MethodeBeginReceiveFromBeginnt den asynchronen Datenempfang aus dem angegebenen Netzwerkgerät.
Öffentliche MethodeBeginReceiveMessageFromBeginnt unter Verwendung der angegebenen SocketFlags den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen.
Öffentliche MethodeBeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)Sendet Daten asynchron an einen verbundenen Socket.
Öffentliche MethodeBeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)Sendet Daten asynchron an einen verbundenen Socket.
Öffentliche MethodeBeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)Sendet Daten asynchron an einen verbundenen Socket.
Öffentliche MethodeBeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)Sendet Daten asynchron an einen verbundenen Socket.
Öffentliche MethodeBeginSendFile(String, AsyncCallback, Object)Sendet die Datei fileName unter Verwendung des UseDefaultWorkerThread-Flags an ein verbundenes Socket-Objekt.
Öffentliche MethodeBeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)Sendet eine Datei und Datenpuffer asynchron an ein verbundenes Socket-Objekt.
Öffentliche MethodeBeginSendToSendet Daten asynchron an einen bestimmten Remotehost.
Öffentliche MethodeBindOrdnet einem Socket einen lokalen Endpunkt zu.
Öffentliche MethodeStatischer MemberCancelConnectAsyncBricht eine asynchrone Anforderung einer Remotehostverbindung ab.
Öffentliche MethodeClose()Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.
Öffentliche MethodeClose(Int32)Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen mit einem angegebenen Timeout frei, damit Daten in der Warteschlange gesendet werden können.
Öffentliche MethodeConnect(EndPoint)Stellt eine Verbindung mit einem Remotehost her.
Öffentliche MethodeConnect(IPAddress, Int32)Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch eine IP-Adresse und eine Anschlussnummer angegeben.
Öffentliche MethodeConnect(IPAddress[], Int32)Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch ein Array von IP-Adressen und eine Anschlussnummer angegeben.
Öffentliche MethodeConnect(String, Int32)Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch einen Hostnamen und eine Anschlussnummer angegeben.
Öffentliche MethodeConnectAsync(SocketAsyncEventArgs)Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.
Öffentliche MethodeStatischer MemberConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.
Öffentliche MethodeDisconnectSchließt die Socketverbindung und ermöglicht die Wiederverwendung des Sockets.
Öffentliche MethodeDisconnectAsyncBeginnt eine asynchrone Anforderung zum Trennen der Verbindung mit einem Remoteendunkt.
Öffentliche MethodeDispose()Gibt alle von der aktuellen Instanz der Socket-Klasse verwendeten Ressourcen frei.
Geschützte MethodeDispose(Boolean)Gibt die vom Socket verwendeten, nicht verwalteten Ressourcen frei und verwirft optional auch die verwalteten Ressourcen.
Öffentliche MethodeDuplicateAndCloseDupliziert den Socketverweis für den Zielprozess und schließt den Socket für diesen Prozess.
Öffentliche MethodeEndAccept(IAsyncResult)Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen Socket zum Behandeln der Remotehostkommunikation.
Öffentliche MethodeEndAccept(Byte[], IAsyncResult)Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation. Diese Methode gibt einen Puffer zurück, der die ersten übertragenen Daten enthält.
Öffentliche MethodeEndAccept(Byte[], Int32, IAsyncResult)Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt ein neues Socket-Objekt zum Behandeln der Remotehostkommunikation. Diese Methode gibt einen Puffer zurück, der die ersten Daten und die Anzahl der übertragenen Bytes enthält.
Öffentliche MethodeEndConnectBeendet eine ausstehende asynchrone Verbindungsanforderung.
Öffentliche MethodeEndDisconnectBeendet eine ausstehende asynchrone Anforderung zur Trennung der Verbindung.
Öffentliche MethodeEndReceive(IAsyncResult)Beendet einen ausstehenden asynchronen Lesevorgang.
Öffentliche MethodeEndReceive(IAsyncResult, SocketError)Beendet einen ausstehenden asynchronen Lesevorgang.
Öffentliche MethodeEndReceiveFromBeendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt.
Öffentliche MethodeEndReceiveMessageFromBeendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt. Diese Methode stellt außerdem mehr Informationen über das Paket als EndReceiveFrom bereit.
Öffentliche MethodeEndSend(IAsyncResult)Beendet einen ausstehenden asynchronen Sendevorgang.
Öffentliche MethodeEndSend(IAsyncResult, SocketError)Beendet einen ausstehenden asynchronen Sendevorgang.
Öffentliche MethodeEndSendFileBeendet ein ausstehendes asynchrones Senden einer Datei.
Öffentliche MethodeEndSendToBeendet einen ausstehenden asynchronen Sendevorgang an einen bestimmten Zielort.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalizeGibt von der Socket-Klasse verwendete Ressourcen frei. (Überschreibt Object.Finalize().)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetSocketOption(SocketOptionLevel, SocketOptionName)Gibt den Wert einer angegebenen, als Objekt dargestellten Socket-Option zurück.
Öffentliche MethodeGetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])Gibt die angegebene Socket-Optionseinstellung als Bytearray dargestellt zurück.
Öffentliche MethodeGetSocketOption(SocketOptionLevel, SocketOptionName, Int32)Gibt den Wert der angegebenen Socket-Option in einem Array zurück.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeIOControl(Int32, Byte[], Byte[])Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.
Öffentliche MethodeIOControl(IOControlCode, Byte[], Byte[])Legt mithilfe der IOControlCode-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den Socket fest.
Öffentliche MethodeListenVersetzt einen Socket in den Überwachungszustand.
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodePollBestimmt den Status des Socket.
Öffentliche MethodeReceive(IList<ArraySegment<Byte>>)Empfängt Daten von einem gebundenen Socket und fügt sie in die Liste der Empfangspuffer ein.
Öffentliche MethodeReceive(Byte[])Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer.
Öffentliche MethodeReceive(IList<ArraySegment<Byte>>, SocketFlags)Empfängt Daten von einem gebundenen Socket in der Liste der Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceive(Byte[], SocketFlags)Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)Empfängt Daten von einem gebundenen Socket in der Liste der Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceive(Byte[], Int32, SocketFlags)Empfängt die angegebene Anzahl von Datenbytes aus einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceive(Byte[], Int32, Int32, SocketFlags)Empfängt die angegebene Anzahl von Bytes aus einem gebundenen Socket an der angegebenen Offsetposition des Empfangspuffers, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceive(Byte[], Int32, Int32, SocketFlags, SocketError)Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeReceiveAsyncStartet eine asynchrone Anforderung, um Daten von einem verbundenen Socket-Objekt zu empfangen.
Öffentliche MethodeReceiveFrom(Byte[], EndPoint)Empfängt ein Datagramm im Datenpuffer und speichert den Endpunkt.
Öffentliche MethodeReceiveFrom(Byte[], SocketFlags, EndPoint)Empfängt mithilfe der angegebenen SocketFlags ein Datagramm im Datenpuffer und speichert den Endpunkt.
Öffentliche MethodeReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)Empfängt mithilfe der angegebenen SocketFlags die angegebene Anzahl von Bytes im Datenpuffer und speichert den Endpunkt.
Öffentliche MethodeReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)Empfängt mithilfe der angegebenen SocketFlags die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert den Endpunkt.
Öffentliche MethodeReceiveFromAsyncBeginnt den asynchronen Datenempfang aus dem angegebenen Netzwerkgerät.
Öffentliche MethodeReceiveMessageFromEmpfängt unter Verwendung der angegebenen SocketFlags die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen.
Öffentliche MethodeReceiveMessageFromAsyncBeginnt unter Verwendung der angegebenen SocketAsyncEventArgs.SocketFlags den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen.
Öffentliche MethodeStatischer MemberSelectBestimmt den Status eines oder mehrerer Sockets.
Öffentliche MethodeSend(IList<ArraySegment<Byte>>)Sendet den Satz der Puffer in der Liste an einen verbundenen Socket.
Öffentliche MethodeSend(Byte[])Sendet Daten an einen verbundenen Socket.
Öffentliche MethodeSend(IList<ArraySegment<Byte>>, SocketFlags)Sendet den Satz von Puffern in der Liste unter Verwendung der angegebenen SocketFlags an einen verbundenen Socket.
Öffentliche MethodeSend(Byte[], SocketFlags)Sendet Daten mithilfe der angegebenen SocketFlags an einen verbundenen Socket.
Öffentliche MethodeSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError)Sendet den Satz von Puffern in der Liste unter Verwendung der angegebenen SocketFlags an einen verbundenen Socket.
Öffentliche MethodeSend(Byte[], Int32, SocketFlags)Sendet die angegebene Anzahl von Datenbytes an einen verbundenen Socket, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeSend(Byte[], Int32, Int32, SocketFlags)Sendet unter Verwendung der angegebenen SocketFlags die angegebene Anzahl von Datenbytes an einen verbundenen Socket, beginnend beim angegebenen Offset.
Öffentliche MethodeSend(Byte[], Int32, Int32, SocketFlags, SocketError)Sendet unter Verwendung der angegebenen SocketFlags die angegebene Anzahl von Datenbytes an einen verbundenen Socket, beginnend beim angegebenen Offset.
Öffentliche MethodeSendAsyncSendet Daten asynchron an ein verbundenes Socket-Objekt.
Öffentliche MethodeSendFile(String)Sendet die Datei fileName mit dem UseDefaultWorkerThread-Übertragungsflag an ein verbundenes Socket-Objekt.
Öffentliche MethodeSendFile(String, Byte[], Byte[], TransmitFileOptions)Sendet die Datei fileName und Datenpuffer unter Verwendung des angegebenen TransmitFileOptions-Werts an ein verbundenes Socket-Objekt.
Öffentliche MethodeSendPacketsAsyncSendet eine Auflistung von Dateien oder Datenpuffern im Speicher asynchron an ein verbundenes Socket-Objekt.
Öffentliche MethodeSendTo(Byte[], EndPoint)Sendet Daten an den angegebenen Endpunkt.
Öffentliche MethodeSendTo(Byte[], SocketFlags, EndPoint)Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.
Öffentliche MethodeSendTo(Byte[], Int32, SocketFlags, EndPoint)Sendet die angegebene Anzahl von Datenbytes an den angegebenen Endpunkt, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)Sendet die angegebene Anzahl von Datenbytes an den angegebenen Endpunkt und beginnt dabei an der angegebenen Position im Puffer, wobei die angegebenen SocketFlags verwendet werden.
Öffentliche MethodeSendToAsyncSendet Daten asynchron an einen bestimmten Remotehost.
Öffentliche MethodeSetIPProtectionLevelLegt die IP-Schutzebene für einen Socket fest.
Öffentliche MethodeSetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)Legt die angegebene Socket-Option auf den angegebenen Boolean-Wert fest.
Öffentliche MethodeSetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])Legt die angegebene Socket-Option auf den angegebenen, als Bytearray dargestellten Wert fest.
Öffentliche MethodeSetSocketOption(SocketOptionLevel, SocketOptionName, Int32)Legt die angegebene Socket-Option auf den angegebenen ganzzahligen Wert fest.
Öffentliche MethodeSetSocketOption(SocketOptionLevel, SocketOptionName, Object)Legt die angegebene Socket-Option auf den angegebenen, als Objekt dargestellten Wert fest.
Öffentliche MethodeShutdownDeaktiviert Senden und Empfangen für einen Socket.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Die Socket-Klasse stellt eine große Anzahl von Methoden und Eigenschaften für die Netzwerkkommunikation bereit. Mit der Socket-Klasse können Sie sowohl synchrone als auch asynchrone Datenübertragungen mit einem der in der ProtocolType-Enumeration aufgelisteten Kommunikationsprotokolle ausführen.

Die Socket-Klasse folgt dem .NET Framework-Benennungsmuster für asynchrone Methoden. Die synchrone Receive-Methode entspricht beispielsweise der asynchronen BeginReceive-Methode und EndReceive-Methode.

Wenn die Anwendung nicht mehr als einen Ausführungsthread benötigt, können Sie die folgenden Methoden verwenden, die für den synchronen Vorgangsmodus bereitstehen.

  • Wenn Sie ein verbindungsorientiertes Protokoll wie TCP verwenden, kann der Server mit der Listen-Methode Verbindungen überwachen. Die Accept-Methode verarbeitet eingehende Verbindungsanforderungen und gibt einen Socket zurück, den Sie verwenden können, um Daten mit dem Remotehost auszutauschen. Mit diesem zurückgegebenen Socket können Sie die Send-Methode oder die Receive-Methode aufrufen. Rufen Sie vor dem Aufruf der Listen-Methode die Bind-Methode auf, wenn Sie die lokale IP-Adresse und Anschlussnummer angeben möchten. Verwenden Sie die Anschlussnummer 0 (null), wenn der zugrunde liegende Dienstanbieter einen freien Anschluss für Sie zuweisen soll. Rufen Sie die Connect-Methode auf, wenn Sie eine Verbindung mit einem überwachenden Host herstellen möchten. Die Daten können durch Aufruf der Send-Methode oder der Receive-Methode übertragen werden.

  • Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie keine Verbindungen überwachen. Eingehende Datagramme können durch Aufruf der ReceiveFrom-Methode angenommen werden. Mit der SendTo-Methode können Sie Datagramme an einen Remotehost senden.

Verwenden Sie die folgenden Methoden, um die Kommunikation mit separaten Ausführungsthreads zu verarbeiten. Die folgenden Methoden wurden für den asynchronen Vorgangsmodus konzipiert.

Wenn Sie mehrere asynchrone Vorgänge für ein Socket ausführen, werden diese nicht notwendigerweise in der Startreihenfolge abgeschlossen.

Nach dem Senden bzw. Empfangen von Daten deaktivieren Sie den Socket mit der Shutdown-Methode. Rufen Sie nach der Shutdown-Methode die Close-Methode auf, um alle dem Socket zugeordneten Ressourcen freizugeben.

Die Socket-Klasse ermöglicht das Konfigurieren des Socket mit der SetSocketOption-Methode. Rufen Sie die entsprechenden Einstellungen mit der GetSocketOption-Methode ab.

HinweisHinweis

Wenn Sie eine eher einfache Anwendung schreiben und nicht die maximale Leistung benötigen, bietet sich die Verwendung von TcpClient, TcpListener und UdpClient an. Diese Klassen stellen eine einfachere und benutzerfreundlichere Schnittstelle für die Socket-Kommunikation bereit.

Im folgenden Codebeispiel wird veranschaulicht, wie mit der Socket-Klasse Daten an einen HTTP-Server gesendet werden können und die Antwort empfangen werden kann. In diesem Beispiel wird die Ausführung blockiert, bis die ganze Seite empfangen wurde.


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

public class GetSocket
{
    private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;

        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

    // This method requests the home page content for the specified server.
    private static string SocketSendReceive(string server, int port) 
    {
        string request = "GET / HTTP/1.1\r\nHost: " + server + 
            "\r\nConnection: Close\r\n\r\n";
        Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
        Byte[] bytesReceived = new Byte[256];

        // Create a socket connection with the specified server and port.
        Socket s = ConnectSocket(server, port);

        if (s == null)
            return ("Connection failed");

        // Send request to the server.
        s.Send(bytesSent, bytesSent.Length, 0);  

        // Receive the server home page content.
        int bytes = 0;
        string page = "Default HTML page on " + server + ":\r\n";

        // The following will block until te page is transmitted.
        do {
            bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
        }
        while (bytes > 0);

        return page;
    }

    public static void Main(string[] args) 
    {
        string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port); 
        Console.WriteLine(result);
    }
}



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

Instanzen dieser Klasse sind threadsicher.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft