Socket Klasse

Definition

Implementiert die Berkeley-Sockets-Schnittstelle.

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

Beispiele

Das folgende Beispiel zeigt, wie die Socket -Klasse verwendet werden kann, um Daten an einen HTTP-Server zu senden, wobei die ASCII-Antwort an die Standardausgabe ausgegeben wird. In diesem Beispiel wird der aufrufende Thread blockiert, bis die gesamte Seite empfangen wird.

private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(uri.Host, port);

    // Send the request.
    // For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = socket.Receive(responseBytes);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        Console.Out.Write(responseChars, 0, charCount);
    }
}

Im nächsten Beispiel wird das gleiche HTTP GET-Szenario veranschaulicht, indem taskbasierte asynchrone APIs verwendet werden, während gleichzeitig ein CancellationToken an die asynchronen Methoden weitergeleitet wird, sodass der gesamte Vorgang abgebrochen werden kann.

Tipp

SocketDie asynchronen Methoden von , die kein verwenden CancellationToken , geben in der Regel ein Taskzurück, das auf dem Heap zugeordnet ist. Abbruchbare Überladungen werden immer ValueTaskzurückgegeben. Die Verwendung dieser Überladungen trägt dazu bei, Zuordnungen in hochleistungsfähigem Code zu reduzieren.

private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    await socket.ConnectAsync(uri.Host, port, cancellationToken);

    // Send the request.
    // For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
    }
}

Hinweise

Weitere Informationen zu dieser API finden Sie unter Ergänzende API-Hinweise für Socket.

Konstruktoren

Socket(AddressFamily, SocketType, ProtocolType)

Initialisiert eine neue Instanz der Socket-Klasse unter Verwendung der angegebenen Adressfamilie sowie des angegebenen Sockettyps und Protokolls.

Socket(SafeSocketHandle)

Initialisiert für das angegebene Sockethandle eine neue Instanz der Socket-Klasse.

Socket(SocketInformation)

Initialisiert eine neue Instanz der Socket-Klasse mit dem angegebenen Wert, der von DuplicateAndClose(Int32) zurückgegeben wird.

Socket(SocketType, ProtocolType)

Initialisiert eine neue Instanz der Socket-Klasse unter Verwendung der angegebenen Sockettyps und Protokolls. Wenn das Betriebssystem IPv6 unterstützt, erstellt dieser Konstruktor einen Dualmodus-Socket. Andernfalls wird ein IPv4-Socket erstellt.

Eigenschaften

AddressFamily

Ruft die Adressfamilie des Socket ab.

Available

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

Blocking

Ruft einen Wert ab, der angibt, ob sich der Socket im blockierenden Modus befindet.

Connected

Ruft einen Wert ab, der angibt, ob ein Socket mit dem Remotehost des letzten Send-Vorgangs oder Receive-Vorgangs verbunden ist.

DontFragment

Ruft einen Wert ab, der angibt, ob der Socket die Fragmentierung von IP-Datagrammen (Internet Protocol) zulässt, oder legt diesen fest.

DualMode

Ruft einen Wert ab, der angibt, ob es sich um einen Dualmodus-Socket handelt, der Socket sowohl für IPv4 als auch für IPv6 verwendet wird, oder legt diesen fest.

EnableBroadcast

Ruft einen Boolean Wert ab, der angibt, ob sendepakete Socket gesendet werden können, oder legt diesen fest.

ExclusiveAddressUse

Ruft einen Boolean-Wert ab, der angibt, ob der Socket das Binden nur eines einzigen Prozesses an einen Anschluss zulässt, oder legt diesen fest.

Handle

Ruft das Betriebssystemhandle für den Socket ab.

IsBound

Ruft einen Wert ab, der angibt, ob der Socket an einen bestimmten lokalen Anschluss gebunden ist.

LingerState

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

LocalEndPoint

Ruft den lokalen Endpunkt ab.

MulticastLoopback

Ruft einen Wert ab, der angibt, ob ausgehende Multicastpakete an die sendende Anwendung übermittelt werden, oder legt diesen fest.

NoDelay

Ruft einen Boolean-Wert ab, der angibt, ob der Stream-Socket den Nagle-Algorithmus verwendet, oder legt diesen fest.

OSSupportsIPv4

Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv4 (Internet Protocol, Version 4) unterstützen.

OSSupportsIPv6

Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv6 (Internet Protocol, Version 6) unterstützen.

OSSupportsUnixDomainSockets

Gibt an, ob das zugrunde liegende Betriebssystem die UNIX-Domänensockets unterstützt.

ProtocolType

Ruft den Protokolltyp des Socket ab.

ReceiveBufferSize

Ruft einen Wert ab, der die Größe des Empfangspuffers des Socket angibt, oder legt diesen fest.

ReceiveTimeout

Ruft einen Wert ab, der die Zeitspanne bis zum Timeout eines synchronen Receive-Aufrufs angibt, oder legt diesen fest.

RemoteEndPoint

Ruft den Remoteendpunkt ab.

SafeHandle

Ruft ein SafeSocketHandle ab, das den Sockethandle darstellt, der vom aktuellen Socket-Objekt gekapselt wird.

SendBufferSize

Ruft einen Wert ab, der die Größe des Sendepuffers für den Socket angibt, oder legt diesen fest.

SendTimeout

Ruft einen Wert ab, der die Zeitspanne bis zum Timeout eines synchronen Send-Aufrufs angibt, oder legt diesen fest.

SocketType

Ruft den Typ des Socket ab.

SupportsIPv4
Veraltet.
Veraltet.
Veraltet.

Ruft einen Wert ab, der angibt, ob IPv4-Unterstützung verfügbar und auf dem aktuellen Host aktiviert ist.

SupportsIPv6
Veraltet.
Veraltet.
Veraltet.

Ruft einen Wert ab, der angibt, ob das Framework IPv6 für bestimmte veraltete Dns-Member unterstützt.

Ttl

Ruft einen Wert ab, der die Gültigkeitsdauer (TTL) von IP (Internet Protocol)-Paketen angibt, die vom Socket gesendet werden.

UseOnlyOverlappedIO
Veraltet.

Ruft einen Wert ab, der angibt, ob der Socket nur den Überlappungs-E/A-Modus verwenden soll, oder legt diesen fest. Unter .NET 5 und höher (einschließlich .NET Core-Versionen) ist der Wert immer false.

Methoden

Accept()

Erstellt einen neuen Socket für eine neu erstellte Verbindung.

AcceptAsync()

Akzeptiert eine eingehende Verbindung.

AcceptAsync(CancellationToken)

Akzeptiert eine eingehende Verbindung.

AcceptAsync(Socket)

Akzeptiert eine eingehende Verbindung.

AcceptAsync(Socket, CancellationToken)

Akzeptiert eine eingehende Verbindung.

AcceptAsync(SocketAsyncEventArgs)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

BeginAccept(AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

BeginAccept(Int32, AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.

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

BeginConnect(EndPoint, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch eine IPAddress und eine Anschlussnummer angegeben.

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

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch ein IPAddress-Array und eine Anschlussnummer angegeben.

BeginConnect(String, Int32, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung einer Remotehostverbindung. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

BeginDisconnect(Boolean, AsyncCallback, Object)

Beginnt eine asynchrone Anforderung zum Trennen der Verbindung mit einem Remoteendunkt.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem verbundenen Socket.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Beginnt den asynchronen Datenempfang aus dem angegebenen Netzwerkgerät.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Beginnt unter Verwendung der angegebenen SocketFlags-Klassen den asynchronen Empfang der angegebenen Anzahl von Datenbytes an der angegebenen Position im Datenpuffer und speichert die Endpunkt- und Paketinformationen.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Sendet Daten asynchron an einen verbundenen Socket.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Sendet Daten asynchron an einen verbundenen Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Sendet Daten asynchron an einen verbundenen Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Sendet Daten asynchron an einen verbundenen Socket.

BeginSendFile(String, AsyncCallback, Object)

Sendet die Datei fileName unter Verwendung des Socket-Flags an ein verbundenes UseDefaultWorkerThread-Objekt.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Sendet eine Datei und Datenpuffer asynchron an ein verbundenes Socket-Objekt.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Sendet asynchron Daten an einen angegebenen Remotehost.

Bind(EndPoint)

Ordnet einem Socket einen lokalen Endpunkt zu.

CancelConnectAsync(SocketAsyncEventArgs)

Bricht eine asynchrone Anforderung einer Remotehostverbindung ab.

Close()

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen frei.

Close(Int32)

Schließt die Socket-Verbindung und gibt alle zugeordneten Ressourcen mit einem angegebenen Timeout frei, damit in der Warteschlange befindliche Daten gesendet werden können.

Connect(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

Connect(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird mit einer IP-Adresse und einer Portnummer angegeben.

Connect(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.

Connect(String, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

ConnectAsync(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(EndPoint, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.

ConnectAsync(String, Int32)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(String, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

Disconnect(Boolean)

Schließt die Socketverbindung und ermöglicht die Wiederverwendung des Sockets.

DisconnectAsync(Boolean, CancellationToken)

Trennt einen verbundenen Socket vom Remotehost.

DisconnectAsync(SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung zum Trennen der Verbindung mit einem Remoteendunkt.

Dispose()

Gibt alle von der aktuellen Instanz der Socket-Klasse verwendeten Ressourcen frei.

Dispose(Boolean)

Gibt die vom Socket verwendeten, nicht verwalteten Ressourcen frei und verwirft optional auch die verwalteten Ressourcen.

DuplicateAndClose(Int32)

Dupliziert den Socketverweis für den Zielprozess und schließt den Socket für diesen Prozess.

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

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

EndAccept(IAsyncResult)

Nimmt asynchron einen eingehenden Verbindungsversuch an und erstellt einen neuen Socket zum Behandeln der Remotehostkommunikation.

EndConnect(IAsyncResult)

Beendet eine ausstehende asynchrone Verbindungsanforderung.

EndDisconnect(IAsyncResult)

Beendet eine ausstehende asynchrone Anforderung zur Trennung der Verbindung.

EndReceive(IAsyncResult)

Beendet einen ausstehenden asynchronen Lesevorgang.

EndReceive(IAsyncResult, SocketError)

Beendet einen ausstehenden asynchronen Lesevorgang.

EndReceiveFrom(IAsyncResult, EndPoint)

Beendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Beendet einen ausstehenden asynchronen Lesevorgang von einem bestimmten Endpunkt. Diese Methode stellt außerdem mehr Informationen über das Paket als EndReceiveFrom(IAsyncResult, EndPoint) bereit.

EndSend(IAsyncResult)

Beendet einen ausstehenden asynchronen Sendevorgang.

EndSend(IAsyncResult, SocketError)

Beendet einen ausstehenden asynchronen Sendevorgang.

EndSendFile(IAsyncResult)

Beendet ein ausstehendes asynchrones Senden einer Datei.

EndSendTo(IAsyncResult)

Beendet einen ausstehenden asynchronen Sendevorgang an einen bestimmten Zielort.

Equals(Object)

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

(Geerbt von Object)
Finalize()

Gibt von der Socket-Klasse verwendete Ressourcen frei.

GetHashCode()

Gibt einen Hashwert für eine Socket-Instanz zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Ruft einen Socketoptionswert unter Verwendung plattformspezifischer Ebenen- und Namensbezeichner ab.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Gibt den Wert einer angegebenen, als Objekt dargestellten Socket-Option zurück.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Gibt die angegebene Socket-Optionseinstellung als Bytearray dargestellt zurück.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Gibt den Wert der angegebenen Socket-Option in einem Array zurück.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IOControl(Int32, Byte[], Byte[])

Legt mit numerischen Steuerungscodes die Betriebsmodi niedriger Ebene für den Socket fest.

IOControl(IOControlCode, Byte[], Byte[])

Legt mithilfe der Socket-Enumeration zum Angeben von Steuerungscodes Betriebsmodi niedriger Ebene für den IOControlCode fest.

Listen()

Versetzt einen Socket in den Überwachungszustand.

Listen(Int32)

Versetzt einen Socket in den Überwachungszustand.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Poll(Int32, SelectMode)

Bestimmt den Status des Socket.

Poll(TimeSpan, SelectMode)

Bestimmt den Status des Socket.

Receive(Byte[])

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer.

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

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(Byte[], Int32, SocketFlags)

Empfängt die angegebene Anzahl von Datenbytes aus einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(Byte[], SocketFlags)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(IList<ArraySegment<Byte>>)

Empfängt Daten von einem gebundenen Socket und fügt sie in die Liste der Empfangspuffer ein.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Empfängt Daten von einem gebundenen Socket in der Liste der Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Empfängt Daten von einem gebundenen Socket in der Liste der Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(Span<Byte>)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer.

Receive(Span<Byte>, SocketFlags)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Receive(Span<Byte>, SocketFlags, SocketError)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

ReceiveAsync(ArraySegment<Byte>)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(IList<ArraySegment<Byte>>)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(Memory<Byte>, CancellationToken)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(SocketAsyncEventArgs)

Startet eine asynchrone Anforderung, um Daten von einem verbundenen Socket-Objekt zu empfangen.

ReceiveFrom(Byte[], EndPoint)

Empfängt ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert den Endpunkt.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Empfängt mithilfe der angegebenen SocketFlags die angegebene Anzahl von Bytes im Datenpuffer und speichert den Endpunkt.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Empfängt mithilfe der angegebenen SocketFlags ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFrom(Span<Byte>, EndPoint)

Empfängt ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Empfängt mithilfe der angegebenen SocketFlags ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Empfängt mithilfe der angegebenen SocketFlags ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Empfängt Daten und gibt den Endpunkt des sendenden Hosts zurück.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Empfängt Daten und gibt den Endpunkt des sendenden Hosts zurück.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Empfängt Daten und gibt den Endpunkt des sendenden Hosts zurück.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Empfängt Daten und gibt den Endpunkt des sendenden Hosts zurück.

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Empfängt mithilfe der angegebenen SocketFlags ein Datagramm im Datenpuffer und speichert den Endpunkt.

ReceiveFromAsync(SocketAsyncEventArgs)

Beginnt den asynchronen Datenempfang aus dem angegebenen Netzwerkgerät.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen socketFlags und speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Empfängt Daten und gibt zusätzliche Informationen über den Absender der Nachricht zurück.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

Select(IList, IList, IList, Int32)

Bestimmt den Status von einem oder mehreren Sockets.

Select(IList, IList, IList, TimeSpan)

Bestimmt den Status von einem oder mehreren Sockets.

Send(Byte[])

Sendet Daten an einen verbundenen Socket.

Send(Byte[], Int32, Int32, SocketFlags)

Sendet die angegebene Anzahl von Datenbytes an einen verbundenen Socket, beginnend bei einem angegebenen Offset und unter Verwendung der angegebenen SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Sendet die angegebene Anzahl von Datenbytes an einen verbundenen Socket, beginnend bei einem angegebenen Offset und unter Verwendung der angegebenen SocketFlags.

Send(Byte[], Int32, SocketFlags)

Sendet die angegebene Anzahl von Datenbytes an einen verbundenen Socket, wobei die angegebenen SocketFlags verwendet werden.

Send(Byte[], SocketFlags)

Sendet Daten mithilfe der angegebenen Socket an einen verbundenen SocketFlags.

Send(IList<ArraySegment<Byte>>)

Sendet den Satz der Puffer in der Liste an einen verbundenen Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Sendet den Satz von Puffern in der Liste unter Verwendung der angegebenen Socket an einen verbundenen SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Sendet den Satz von Puffern in der Liste unter Verwendung der angegebenen Socket an einen verbundenen SocketFlags.

Send(ReadOnlySpan<Byte>)

Sendet Daten an einen verbundenen Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Sendet Daten mithilfe der angegebenen Socket an einen verbundenen SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Sendet Daten mithilfe der angegebenen Socket an einen verbundenen SocketFlags.

SendAsync(ArraySegment<Byte>)

Sendet Daten an einen verbundenen Socket.

SendAsync(ArraySegment<Byte>, SocketFlags)

Sendet Daten an einen verbundenen Socket.

SendAsync(IList<ArraySegment<Byte>>)

Sendet Daten an einen verbundenen Socket.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

Sendet Daten an einen verbundenen Socket.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Sendet Daten an einen verbundenen Socket.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Sendet Daten an einen verbundenen Socket.

SendAsync(SocketAsyncEventArgs)

Sendet Daten asynchron an ein verbundenes Socket-Objekt.

SendFile(String)

Sendet die Datei fileName mit dem Socket-Übertragungsflag an ein verbundenes UseDefaultWorkerThread-Objekt.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

Sendet die Datei fileName und puffert Daten mit dem angegebenen TransmitFileOptions-Wert in einem verbundenen Socket-Objekt.

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

Sendet die Datei fileName und puffert Daten mit dem angegebenen TransmitFileOptions-Wert in einem verbundenen Socket-Objekt.

SendFileAsync(String, CancellationToken)

Sendet die Datei fileName an ein verbundenes Socket Objekt.

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

Sendet die Datei fileName und puffert Daten mit dem angegebenen TransmitFileOptions-Wert in einem verbundenen Socket-Objekt.

SendPacketsAsync(SocketAsyncEventArgs)

Sendet eine Auflistung von Dateien oder Datenpuffern im Speicher asynchron an ein verbundenes Socket-Objekt.

SendTo(Byte[], EndPoint)

Sendet Daten an den angegebenen Endpunkt.

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

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Sendet die angegebene Anzahl von Datenbytes an den angegebenen Endpunkt, wobei die angegebenen SocketFlags verwendet werden.

SendTo(Byte[], SocketFlags, EndPoint)

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Sendet Daten an den angegebenen Endpunkt.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

SendToAsync(ArraySegment<Byte>, EndPoint)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Sendet Daten an den angegebenen Remotehost.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Sendet Daten an einen bestimmten Endpunkt unter Verwendung der angegebenen SocketFlags.

SendToAsync(SocketAsyncEventArgs)

Sendet asynchron Daten an einen angegebenen Remotehost.

SetIPProtectionLevel(IPProtectionLevel)

Legt die IP-Schutzebene für einen Socket fest.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Legt einen Socketoptionswert unter Verwendung plattformspezifischer Ebenen- und Namensbezeichner fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Legt die angegebene Socket-Option auf den angegebenen Boolean-Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Legt die angegebene Socket-Option auf den angegebenen, als Bytearray dargestellten Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Legt die angegebene Socket-Option auf den angegebenen ganzzahligen Wert fest.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Legt die angegebene Socket-Option auf den angegebenen, als Objekt dargestellten Wert fest.

Shutdown(SocketShutdown)

Deaktiviert Senden und Empfangen für einen Socket.

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 Socket verwendeten Ressourcen frei.

Erweiterungsmethoden

AcceptAsync(Socket)

Führt einen asynchronen Vorgang aus, um einen eingehenden Verbindungsversuch auf dem Socket anzunehmen.

AcceptAsync(Socket, Socket)

Führt einen asynchronen Vorgang aus, um einen eingehenden Verbindungsversuch auf dem Socket anzunehmen.

ConnectAsync(Socket, EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(Socket, EndPoint, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(Socket, IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird mit einer IP-Adresse und einer Portnummer angegeben.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her, der durch eine IP-Adresse und eine Portnummer angegeben wird.

ConnectAsync(Socket, IPAddress[], Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch ein Array von IP-Adressen und eine Portnummer angegeben.

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her, der durch ein Array von IP-Adressen und eine Portnummer angegeben wird.

ConnectAsync(Socket, String, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

ConnectAsync(Socket, String, Int32, CancellationToken)

Stellt eine Verbindung mit einem Remotehost her, der durch einen Hostnamen und eine Portnummer angegeben wird.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Empfängt Daten aus einem verbundenen Socket.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

Empfängt Daten aus einem verbundenen Socket.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Empfängt Daten von einem angegebenen Netzwerkgerät.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Empfängt die angegebene Anzahl von Datenbytes an der angegebenen Position im Datenpuffer, verwendet dabei die angegebenen SocketFlags und speichert die Endpunkt- und Paketinformationen.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Sendet Daten an einen verbundenen Socket.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Sendet Daten an einen verbundenen Socket.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Sendet Daten an einen verbundenen Socket.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Sendet asynchron Daten an einen angegebenen Remotehost.

Gilt für:

Threadsicherheit

Es ist sicher, einen Sende- und empfangsvorgang gleichzeitig auf einem Socket instance auszuführen, es wird jedoch nicht empfohlen, mehrere Sende- oder Mehrere Empfangsanrufe gleichzeitig auszusenden. Abhängig von der zugrunde liegenden Plattformimplementierung kann dies zu einer unbeabsichtigten Datenübereinschränkung für große oder multipuffernde Sende- oder Empfangsvorgänge führen.

Weitere Informationen