Socket Klasse

Definition

Implementiert die Schnittstelle der Berkeley-Sockets.

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 und die ASCII-Antwort auf die Standardausgabe zu drucken. 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 dasselbe HTTP GET-Szenario mit aufgabenbasierten asynchronen APIs veranschaulicht und gleichzeitig eine CancellationToken Weiterleitung an die asynchronen Methoden durchgeführt, wodurch der gesamte Vorgang abgebrochen werden kann.

Tip

SocketDie asynchronen Methoden, die normalerweise keine asynchrone Methode verwenden, geben ein CancellationTokenTask, das für den Heap zugewiesen wird. Abbruchbare Überladungen werden immer ValueTaskzurückgegeben. Die Verwendung hilft dabei, 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 in den ergänzenden API-Hinweisen für Socket.

Konstruktoren

Name Beschreibung
Socket(AddressFamily, SocketType, ProtocolType)

Initialisiert eine neue Instanz der Klasse mithilfe der Socket angegebenen Adressfamilie, des Sockettyps und des Protokolls.

Socket(SocketInformation)

Initialisiert eine neue Instanz der Socket Klasse mithilfe des angegebenen Werts, der von DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

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

Eigenschaften

Name Beschreibung
AddressFamily

Ruft die Adressfamilie der Socket.

Available

Ruft die Datenmenge ab, die vom Netzwerk empfangen wurde und verfügbar ist, um gelesen zu werden.

Blocking

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob sich der Socket Blockierungsmodus befindet.

Connected

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

DontFragment

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Socket IP-Datagramme (Internet Protocol) fragmentiert werden können.

DualMode

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob es sich um einen Dualmodus-Socket handelt, der Socket sowohl für IPv4 als auch für IPv6 verwendet wird.

EnableBroadcast

Dient zum Abrufen oder Festlegen eines Boolean Werts, der angibt, ob die Socket Übertragungspakete senden können.

ExclusiveAddressUse

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob nur Socket ein Prozess an einen Port gebunden werden kann.

Handle

Ruft das Betriebssystemhandle für die Socket.

IsBound

Ruft einen Wert ab, der angibt, ob die Socket An einen bestimmten lokalen Port gebunden ist.

LingerState

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das Socket Schließen eines Sockets in einem Versuch, alle ausstehenden Daten zu senden, verzögert wird.

LocalEndPoint

Ruft den lokalen Endpunkt ab.

MulticastLoopback

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob ausgehende Multicastpakete an die sendende Anwendung übermittelt werden.

NoDelay

Dient zum Abrufen oder Festlegen eines Boolean Werts, der angibt, ob der Datenstrom Socket den Nagle-Algorithmus verwendet.

OSSupportsIPv4

Gibt an, ob das zugrunde liegende Betriebssystem und Netzwerkadapter Internetprotokoll Version 4 (IPv4) unterstützen.

OSSupportsIPv6

Gibt an, ob das zugrunde liegende Betriebssystem und Netzwerkadapter Internetprotokoll Version 6 (IPv6) unterstützen.

ProtocolType

Ruft den Protokolltyp der Socket.

ReceiveBufferSize

Dient zum Abrufen oder Festlegen eines Werts, der die Größe des Empfangspuffers des .Socket

ReceiveTimeout

Dient zum Abrufen oder Festlegen eines Werts, der die Zeitspanne angibt, nach der ein synchroner Receive Aufruf timeout wird.

RemoteEndPoint

Ruft den Remoteendpunkt ab.

SendBufferSize

Dient zum Abrufen oder Festlegen eines Werts, der die Größe des Sendepuffers der .Socket

SendTimeout

Dient zum Abrufen oder Festlegen eines Werts, der die Zeitspanne angibt, nach der ein synchroner Send Aufruf timeout wird.

SocketType

Ruft den Typ der .Socket

SupportsIPv4
Veraltet.
Veraltet.

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

SupportsIPv6
Veraltet.
Veraltet.

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

Ttl

Dient zum Abrufen oder Festlegen eines Werts, der den Time To Live -Wert (TTL) von Internet Protocol (IP)-Paketen angibt, die von der Socket.

UseOnlyOverlappedIO

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Socket nur den überlappenden E/A-Modus verwenden soll. Auf .NET 5+ (einschließlich .NET Core-Versionen) ist der Wert immer false.

Methoden

Name Beschreibung
Accept()

Erstellt eine neue Socket für eine neu erstellte Verbindung.

AcceptAsync(SocketAsyncEventArgs)

Startet einen asynchronen Vorgang, um einen eingehenden Verbindungsversuch zu akzeptieren.

BeginAccept(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um einen eingehenden Verbindungsversuch zu akzeptieren.

BeginAccept(Int32, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um einen eingehenden Verbindungsversuch zu akzeptieren und empfängt den ersten Von der Clientanwendung gesendeten Datenblock.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um einen eingehenden Verbindungsversuch von einem angegebenen Socket zu akzeptieren und empfängt den ersten Von der Clientanwendung gesendeten Datenblock.

BeginConnect(EndPoint, AsyncCallback, Object)

Startet eine asynchrone Anforderung für eine Remotehostverbindung.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch eine IPAddress Portnummer und eine Portnummer angegeben.

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

Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch ein IPAddress Array und eine Portnummer angegeben.

BeginConnect(String, Int32, AsyncCallback, Object)

Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.

BeginDisconnect(Boolean, AsyncCallback, Object)

Startet eine asynchrone Anforderung zum Trennen von einem Remoteendpunkt.

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

Beginnt mit dem asynchronen Empfangen von Daten aus einer verbundenen .Socket

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

Beginnt mit dem asynchronen Empfangen von Daten aus einer verbundenen .Socket

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

Beginnt mit dem asynchronen Empfangen von Daten aus einer verbundenen .Socket

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

Beginnt mit dem asynchronen Empfangen von Daten aus einer verbundenen .Socket

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

Beginnt mit dem asynchronen Empfangen von Daten von einem angegebenen Netzwerkgerät.

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

Beginnt mit dem asynchronen Empfangen der angegebenen Anzahl von Daten an den angegebenen Speicherort des Datenpuffers, wobei die angegebenen Daten verwendet SocketFlagswerden, und speichert die Endpunkt- und Paketinformationen.

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

Sendet Daten asynchron an eine verbundene Socket.

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

Sendet Daten asynchron an eine verbundene Socket.

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

Sendet Daten asynchron an eine verbundene Socket.

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

Sendet Daten asynchron an eine verbundene Socket.

BeginSendFile(String, AsyncCallback, Object)

Sendet die Datei fileName mithilfe des Socket Flags an ein verbundenes UseDefaultWorkerThread Objekt.

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

Sendet eine Datei und Puffer von Daten asynchron an ein verbundenes Socket Objekt.

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

Sendet Daten asynchron an einen bestimmten Remotehost.

Bind(EndPoint)

Ordnet einen Socket lokalen Endpunkt zu.

CancelConnectAsync(SocketAsyncEventArgs)

Bricht eine asynchrone Anforderung für eine Remotehostverbindung ab.

Close()

Schließt die Socket Verbindung und gibt alle zugehörigen Ressourcen frei.

Close(Int32)

Schließt die Socket Verbindung und gibt alle zugeordneten Ressourcen mit einem angegebenen Timeout frei, um das Senden von in die Warteschlange eingereihten Daten zu ermöglichen.

Connect(EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

Connect(IPAddress, Int32)

Stellt eine Verbindung mit einem Remotehost her. Der Host wird durch eine IP-Adresse und eine 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(SocketAsyncEventArgs)

Startet eine asynchrone Anforderung für eine Verbindung mit einem Remotehost.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Startet eine asynchrone Anforderung für eine Verbindung mit einem Remotehost.

Disconnect(Boolean)

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

DisconnectAsync(SocketAsyncEventArgs)

Startet eine asynchrone Anforderung zum Trennen von einem Remoteendpunkt.

Dispose()

Gibt alle Ressourcen frei, die von der aktuellen Instanz der Socket Klasse verwendet werden.

Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den Socketverwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen ab.

DuplicateAndClose(Int32)

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

EndAccept(Byte[], IAsyncResult)

Akzeptiert asynchron einen eingehenden Verbindungsversuch und erstellt ein neues Socket Objekt zur Behandlung der Remotehostkommunikation. Diese Methode gibt einen Puffer zurück, der die übertragenen Anfangsdaten enthält.

EndAccept(Byte[], Int32, IAsyncResult)

Akzeptiert asynchron einen eingehenden Verbindungsversuch und erstellt ein neues Socket Objekt zur Behandlung der Remotehostkommunikation. Diese Methode gibt einen Puffer zurück, der die anfangsdaten und die Anzahl der übertragenen Bytes enthält.

EndAccept(IAsyncResult)

Akzeptiert asynchron einen eingehenden Verbindungsversuch und erstellt eine neue Socket Für die Remotehostkommunikation.

EndConnect(IAsyncResult)

Beendet eine ausstehende asynchrone Verbindungsanforderung.

EndDisconnect(IAsyncResult)

Beendet eine ausstehende asynchrone Verbindungsanforderung.

EndReceive(IAsyncResult, SocketError)

Beendet einen ausstehenden asynchronen Lesevorgang.

EndReceive(IAsyncResult)

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 zeigt auch mehr Informationen über das Paket als EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult, SocketError)

Beendet ein ausstehendes asynchrones Senden.

EndSend(IAsyncResult)

Beendet ein ausstehendes asynchrones Senden.

EndSendFile(IAsyncResult)

Beendet ein ausstehendes asynchrones Senden einer Datei.

EndSendTo(IAsyncResult)

Beendet ein ausstehendes asynchrones Senden an einen bestimmten Speicherort.

Equals(Object)

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

(Geerbt von Object)
Finalize()

Gibt Ressourcen frei, die von der Socket Klasse verwendet werden.

GetHashCode()

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

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

GetType()

Ruft die Type der aktuellen Instanz ab.

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

Legt Betriebsmodi auf niedriger Ebene für die Socket Verwendung numerischer Steuercodes fest.

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

Legt Betriebsmodi auf niedriger Ebene für die Verwendung der SocketIOControlCode Aufzählung fest, um Steuercodes anzugeben.

Listen(Int32)

Platziert einen Socket Hörzustand.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Poll(Int32, SelectMode)

Bestimmt den Status der Socket.

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

Empfängt Daten aus einer gebundenen Bindung Socket in einen Empfangspuffer mithilfe des angegebenen SocketFlags.

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

Empfängt die angegebene Anzahl von Bytes aus einer Gebundenen Socket an die angegebene Offsetposition des Empfangspuffers unter Verwendung der angegebenen SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Empfängt die angegebene Anzahl von Byte von Daten, die an einen Empfangspuffer gebunden Socket sind, mithilfe des angegebenen SocketFlags.

Receive(Byte[], SocketFlags)

Empfängt Daten aus einer gebundenen Bindung Socket in einen Empfangspuffer mithilfe des angegebenen SocketFlags.

Receive(Byte[])

Empfängt Daten aus einer Gebundenen Socket in einen Empfangspuffer.

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

Empfängt Daten aus einer gebundenen Socket Liste der Empfangspuffer mithilfe der angegebenen SocketFlags.

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

Empfängt Daten aus einer gebundenen Socket Liste der Empfangspuffer mithilfe der angegebenen SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Empfängt Daten aus einer gebundenen Socket Liste der Empfangspuffer.

Receive(Span<Byte>, SocketFlags, SocketError)

Empfängt Daten aus einer gebundenen Bindung Socket in einen Empfangspuffer mithilfe des angegebenen SocketFlags.

Receive(Span<Byte>, SocketFlags)

Empfängt Daten aus einer gebundenen Bindung Socket in einen Empfangspuffer mithilfe des angegebenen SocketFlags.

Receive(Span<Byte>)

Empfängt Daten aus einer Gebundenen Socket in einen Empfangspuffer.

ReceiveAsync(SocketAsyncEventArgs)

Beginnt eine asynchrone Anforderung zum Empfangen von Daten von einem verbundenen Socket Objekt.

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 Byte an der angegebenen Position des Datenpuffers unter Verwendung des angegebenen SocketFlagsUnd speichert den Endpunkt.

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

Empfängt die angegebene Anzahl von Bytes in den Datenpuffer mit dem angegebenen SocketFlagsUnd speichert den Endpunkt.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Empfängt ein Datagramm im Datenpuffer mithilfe des angegebenen SocketFlagsUnd speichert den Endpunkt.

ReceiveFromAsync(SocketAsyncEventArgs)

Beginnt mit dem asynchronen Empfangen von Daten von einem angegebenen Netzwerkgerät.

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

Empfängt die angegebene Anzahl von Bytes von Daten an den angegebenen Speicherort des Datenpuffers unter Verwendung des angegebenen SocketFlagsUnd speichert die Endpunkt- und Paketinformationen.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Beginnt mit dem asynchronen Empfangen der angegebenen Anzahl von Daten an den angegebenen Speicherort im Datenpuffer mithilfe der angegebenen SocketFlagsDaten und speichert die Endpunkt- und Paketinformationen.

Select(IList, IList, IList, Int32)

Bestimmt den Status eines oder mehrerer Sockets.

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

Sendet die angegebene Anzahl von Bytes von Daten an eine verbundene Socket, beginnend mit dem angegebenen Offset und die Verwendung der angegebenen SocketFlags.

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

Sendet die angegebene Anzahl von Bytes von Daten an eine verbundene Socket, beginnend mit dem angegebenen Offset und die Verwendung der angegebenen SocketFlags.

Send(Byte[], Int32, SocketFlags)

Sendet die angegebene Anzahl von Byte von Daten an eine verbundene Socket, mithilfe der angegebenen SocketFlags.

Send(Byte[], SocketFlags)

Sendet Daten mithilfe Socket der angegebenen SocketFlags.

Send(Byte[])

Sendet Daten an eine verbundene Socket.

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

Sendet den Satz von Puffern in der Liste an eine verbundene Socket, mithilfe der angegebenen SocketFlags.

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

Sendet den Satz von Puffern in der Liste an eine verbundene Socket, mithilfe der angegebenen SocketFlags.

Send(IList<ArraySegment<Byte>>)

Sendet den Satz von Puffern in der Liste an eine verbundene Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Sendet Daten mithilfe Socket der angegebenen SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

Sendet Daten mithilfe Socket der angegebenen SocketFlags.

Send(ReadOnlySpan<Byte>)

Sendet Daten an eine verbundene Socket.

SendAsync(SocketAsyncEventArgs)

Sendet Daten asynchron an ein verbundenes Socket Objekt.

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

Sendet die Datei fileName und Puffer von Daten mithilfe des angegebenen Socket Werts an ein verbundenes TransmitFileOptions Objekt.

SendFile(String)

Sendet die Datei fileName an ein verbundenes Socket Objekt mit der UseDefaultWorkerThread Übertragungskennzeichnung.

SendPacketsAsync(SocketAsyncEventArgs)

Sendet eine Sammlung von Dateien oder in Speicherdatenpuffern 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 Daten an den angegebenen Endpunkt, beginnend an der angegebenen Position im Puffer, und verwendet die angegebene SocketFlags.

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

Sendet die angegebene Anzahl von Byte von Daten mithilfe des angegebenen SocketFlagsEndpunkts an den angegebenen Endpunkt.

SendTo(Byte[], SocketFlags, EndPoint)

Sendet Daten mithilfe des angegebenen SocketFlagsEndpunkts an einen bestimmten Endpunkt.

SendToAsync(SocketAsyncEventArgs)

Sendet Daten asynchron an einen bestimmten Remotehost.

SetIPProtectionLevel(IPProtectionLevel)

Legt die IP-Schutzebene für einen Socket 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 Wert fest, dargestellt als Bytearray.

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 Wert fest, dargestellt als Objekt.

Shutdown(SocketShutdown)

Deaktiviert Sende- und Empfänge für ein Socket.

ToString()

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

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDisposable.Dispose()

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

Veröffentlicht alle ressourcen, die von der Socket.

Erweiterungsmethoden

Name Beschreibung
AcceptAsync(Socket, Socket)

Führt einen asynchronen Vorgang aus, um einen eingehenden Verbindungsversuch für den Socket zu akzeptieren.

AcceptAsync(Socket)

Führt einen asynchronen Vorgang aus, um einen eingehenden Verbindungsversuch für den Socket zu akzeptieren.

ConnectAsync(Socket, EndPoint)

Stellt eine Verbindung mit einem Remotehost her.

ConnectAsync(Socket, IPAddress, Int32)

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

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, String, Int32)

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

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 Bytes von Daten an den angegebenen Speicherort des Datenpuffers unter Verwendung des angegebenen SocketFlagsUnd 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 Daten asynchron an einen bestimmten Remotehost.

Gilt für:

Threadsicherheit

Es ist sicher, einen Sende- und Empfangsvorgang gleichzeitig in einer Socket Instanz auszuführen, es wird jedoch nicht empfohlen, mehrere Sende- oder mehrere Empfangsanrufe gleichzeitig auszusenden. Je nach der zugrunde liegenden Plattformimplementierung kann dies zu unbeabsichtigten Datenübereinschränkungen für große oder multipufferbasierte Sende- oder Empfänge führen.

Weitere Informationen