Socket Třída

Definice

Implementuje rozhraní soketů Berkeley.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Dědičnost
Socket
Implementuje

Příklady

Následující příklad ukazuje, jak Socket lze třídu použít k odesílání dat na server HTTP, tisk odpovědi ASCII na standardní výstup. Tento příklad blokuje volající vlákno, dokud nebude přijata celá stránka.

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);
    }
}

Další příklad ukazuje stejný scénář HTTP GET, který používá asynchronní rozhraní API založená na úlohách a zároveň předává asynchronní CancellationToken metody, čímž se celá operace zruší.

Tip

Socketasynchronní metody, které obvykle nevracely CancellationToken haldu Task, která je přidělena haldě. Zrušená přetížení jsou vždy ValueTaskvrácena. Jejich použití pomáhá snižovat přidělení v kódu s vysokým výkonem.

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);
    }
}

Poznámky

Třída Socket poskytuje bohatou sadu metod a vlastností pro síťovou komunikaci. Třída Socket umožňuje provádět synchronní i asynchronní přenos dat pomocí některého z komunikačních protokolů uvedených v výčtu ProtocolType .

Třída Socket se řídí vzorem pojmenování .NET pro asynchronní metody. Synchronní Receive metoda například odpovídá asynchronním ReceiveAsync variantám.

Pro synchronní režim operace použijte následující metody:

  • Pokud používáte protokol orientovaný na spojení, například TCP, váš server může naslouchat spojení pomocí Listen metody. Tato Accept metoda zpracuje všechny příchozí požadavky na připojení a vrátí Socket data, která můžete použít ke komunikaci dat se vzdáleným hostitelem. Tento vrácený Socket kód použijte k volání Send metody nebo Receive metody. Zavolejte metodu Bind před zavoláním metody Listen, pokud chcete zadat místní IP adresu a číslo portu. Pokud chcete, aby základní poskytovatel služeb přiřadil bezplatný port za vás, použijte číslo portu nula. Pokud se chcete připojit k naslouchacímu hostiteli, zavolejte metodu Connect . Ke komunikaci dat volejte metodu Send nebo Receive.
  • Pokud používáte protokol orientovaný na bezstavový přenos, jako je UDP, nemusíte vůbec čekat na připojení. Voláním ReceiveFrom metody přijměte všechny příchozí datagramy. SendTo Pomocí metody odešlete datagramy vzdálenému hostiteli.

Ke zpracování komunikace asynchronně použijte následující metody:

  • Pokud používáte protokol orientovaný na připojení, například TCP, použijte ConnectAsync pro připojení k hostiteli naslouchání. Použijte SendAsync nebo ReceiveAsync k asynchronní komunikaci dat. Příchozí požadavky na připojení je možné zpracovat pomocí AcceptAsync.
  • Pokud používáte protokol bez připojení, například UDP, můžete použít SendToAsync k odesílání datovýchgramů a ReceiveFromAsync k příjmu datagramů.

Pokud provádíte více asynchronních operací na soketu, nemusí se nutně dokončit v pořadí, ve kterém jsou spuštěny.

Po dokončení odesílání a přijímání dat použijte metodu Shutdown k zakázání Socket. Po volání Shutdown, volejte metodu Close, která uvolní všechny prostředky přidružené k Socket.

Třída Socket umožňuje konfigurovat Socket pomocí SetSocketOption metody. Načtěte tato nastavení pomocí metody GetSocketOption.

Konstruktory

Name Description
Socket(AddressFamily, SocketType, ProtocolType)

Inicializuje novou instanci Socket třídy pomocí zadané řady adres, typu soketu a protokolu.

Socket(SafeSocketHandle)

Inicializuje novou instanci Socket třídy pro zadaný popisovač soketu.

Socket(SocketInformation)

Inicializuje novou instanci Socket třídy pomocí zadané hodnoty vrácené z DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inicializuje novou instanci Socket třídy pomocí zadaného typu soketu a protokolu. Pokud operační systém podporuje protokol IPv6, tento konstruktor vytvoří soket s duálním režimem; jinak vytvoří soket IPv4.

Vlastnosti

Name Description
AddressFamily

Získá adresu rodiny Socket.

Available

Získá množství dat přijatých ze sítě a je k dispozici ke čtení.

Blocking

Získá nebo nastaví hodnotu, která označuje, zda Socket je v režimu blokování.

Connected

Získá hodnotu, která označuje, zda Socket je připojen ke vzdálenému hostiteli jako poslední Send nebo Receive operace.

DontFragment

Získá nebo nastaví hodnotu, která určuje, zda Socket umožňuje protokol IP (Internet Protocol) datagramy fragmentovat.

DualMode

Získá nebo nastaví hodnotu, která určuje, zda Socket je duální režim soket používaný pro IPv4 i IPv6.

EnableBroadcast

Získá nebo nastaví Boolean hodnotu, která určuje, zda Socket může odesílat pakety všesměrového vysílání.

ExclusiveAddressUse

Získá nebo nastaví hodnotu, která označuje, zda Socket umožňuje pouze jeden proces vytvořit vazbu na port.

Handle

Získá popisovač operačního systému pro Socket.

IsBound

Získá hodnotu, která určuje, zda Socket je vázán na konkrétní místní port.

LingerState

Získá nebo nastaví hodnotu, která určuje, zda Socket se zpozdí zavření soketu při pokusu o odeslání všech čekajících dat.

LocalEndPoint

Získá místní koncový bod.

MulticastLoopback

Získá nebo nastaví hodnotu, která určuje, zda odchozí pakety vícesměrového vysílání jsou doručeny do odesílající aplikace.

NoDelay

Získá nebo nastaví Boolean hodnotu, která určuje, zda datový proud Socket používá algoritmus Nagle.

OSSupportsIPv4

Určuje, jestli základní operační systém a síťové adaptéry podporují protokol IPv4 (Internet Protocol verze 4).

OSSupportsIPv6

Určuje, jestli základní operační systém a síťové adaptéry podporují protokol IPv6 (Internet Protocol verze 6).

OSSupportsUnixDomainSockets

Určuje, zda základní operační systém podporuje sokety domény Unix.

ProtocolType

Získá typ Socketprotokolu .

ReceiveBufferSize

Získá nebo nastaví hodnotu, která určuje velikost příjmu vyrovnávací paměti Socket.

ReceiveTimeout

Získá nebo nastaví hodnotu, která určuje dobu, po které synchronní Receive volání vyprší časový limit.

RemoteEndPoint

Získá vzdálený koncový bod.

SafeHandle

SafeSocketHandle Získá, který představuje soket popisovač, který aktuální Socket objekt zapouzdřuje.

SendBufferSize

Získá nebo nastaví hodnotu, která určuje velikost vyrovnávací paměti Socketpro odeslání .

SendTimeout

Získá nebo nastaví hodnotu, která určuje dobu, po které synchronní Send volání vyprší časový limit.

SocketType

Získá typ Socket.

SupportsIPv4
Zastaralé.
Zastaralé.
Zastaralé.

Získá hodnotu označující, zda je podpora IPv4 k dispozici a povolena na aktuálním hostiteli.

SupportsIPv6
Zastaralé.
Zastaralé.
Zastaralé.

Získá hodnotu, která označuje, zda Framework podporuje IPv6 pro určité zastaralé Dns členy.

Ttl

Získá nebo nastaví hodnotu, která určuje hodnotu TTL (Time To Live) paketů protokolu IP (Internet Protocol) odesílaných protokolem Socket.

UseOnlyOverlappedIO
Zastaralé.

Získá nebo nastaví hodnotu, která určuje, zda soket má používat pouze překrývající se vstupně-výstupní režim. Na .NET 5 nebo novějších (včetně verzí .NET Core) je hodnota vždy false.

Metody

Name Description
Accept()

Vytvoří novou Socket pro nově vytvořené připojení.

AcceptAsync()

Přijímá příchozí připojení.

AcceptAsync(CancellationToken)

Přijímá příchozí připojení.

AcceptAsync(Socket, CancellationToken)

Přijímá příchozí připojení.

AcceptAsync(Socket)

Přijímá příchozí připojení.

AcceptAsync(SocketAsyncEventArgs)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení.

BeginAccept(AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení.

BeginAccept(Int32, AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení a přijme první blok dat odesílaných klientskou aplikací.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení ze zadaného soketu a přijme první blok dat odeslaných klientskou aplikací.

BeginConnect(EndPoint, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení vzdáleného hostitele.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Hostitel je určen číslem IPAddress portu a číslem portu.

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

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Hostitel je určen polem IPAddress a číslem portu.

BeginConnect(String, Int32, AsyncCallback, Object)

Zahájí asynchronní požadavek na připojení vzdáleného hostitele. Hostitel je určen názvem hostitele a číslem portu.

BeginDisconnect(Boolean, AsyncCallback, Object)

Zahájí asynchronní požadavek, který se odpojí od vzdáleného koncového bodu.

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

Začíná asynchronně přijímat data z připojeného Socket.

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

Začíná asynchronně přijímat data z připojeného Socket.

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

Začíná asynchronně přijímat data z připojeného Socket.

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

Začíná asynchronně přijímat data z připojeného Socket.

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

Začne asynchronně přijímat data ze zadaného síťového zařízení.

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

Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod a informace o paketu.

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

Odesílá data asynchronně do připojeného Socket.

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

Odesílá data asynchronně do připojeného Socket.

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

Odesílá data asynchronně do připojeného Socket.

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

Odesílá data asynchronně do připojeného Socket.

BeginSendFile(String, AsyncCallback, Object)

Odešle soubor fileName do připojeného Socket objektu pomocí příznaku UseDefaultWorkerThread .

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

Odešle soubor a vyrovnávací paměti dat asynchronně do připojeného Socket objektu.

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

Odesílá data asynchronně na konkrétního vzdáleného hostitele.

Bind(EndPoint)

Přidruží místní Socket koncový bod.

CancelConnectAsync(SocketAsyncEventArgs)

Zruší asynchronní požadavek na připojení vzdáleného hostitele.

Close()

Socket Ukončí připojení a uvolní všechny přidružené prostředky.

Close(Int32)

Socket Zavře připojení a uvolní všechny přidružené prostředky se zadaným časovým limitem, aby bylo možné odesílat data ve frontě.

Connect(EndPoint)

Vytvoří připojení ke vzdálenému hostiteli.

Connect(IPAddress, Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen IP adresou a číslem portu.

Connect(IPAddress[], Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen polem IP adres a číslem portu.

Connect(String, Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu.

ConnectAsync(EndPoint, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(EndPoint)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(IPAddress, Int32, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(IPAddress, Int32)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(IPAddress[], Int32)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(SocketAsyncEventArgs)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)

Implementuje rozhraní soketů Berkeley.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Zahájí asynchronní požadavek na připojení ke vzdálenému hostiteli.

ConnectAsync(String, Int32, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(String, Int32)

Vytvoří připojení ke vzdálenému hostiteli.

Disconnect(Boolean)

Zavře připojení soketu a povolí opakované použití soketu.

DisconnectAsync(Boolean, CancellationToken)

Odpojí připojený soket od vzdáleného hostitele.

DisconnectAsync(SocketAsyncEventArgs)

Zahájí asynchronní požadavek, který se odpojí od vzdáleného koncového bodu.

Dispose()

Uvolní všechny prostředky používané aktuální instancí Socket třídy.

Dispose(Boolean)

Uvolní nespravované prostředky používané Socketnástrojem a volitelně uvolní spravované prostředky.

DuplicateAndClose(Int32)

Duplikuje odkaz na soket pro cílový proces a zavře soket pro tento proces.

EndAccept(Byte[], IAsyncResult)

Asynchronně přijímá příchozí pokus o připojení a vytvoří nový Socket objekt pro zpracování komunikace vzdáleného hostitele. Tato metoda vrátí vyrovnávací paměť, která obsahuje počáteční přenášená data.

EndAccept(Byte[], Int32, IAsyncResult)

Asynchronně přijímá příchozí pokus o připojení a vytvoří nový Socket objekt pro zpracování komunikace vzdáleného hostitele. Tato metoda vrátí vyrovnávací paměť, která obsahuje počáteční data a počet přenesených bajtů.

EndAccept(IAsyncResult)

Asynchronně přijímá příchozí pokus o připojení a vytvoří nový Socket pro zpracování komunikace vzdáleného hostitele.

EndConnect(IAsyncResult)

Ukončí čekající asynchronní žádost o připojení.

EndDisconnect(IAsyncResult)

Ukončí čekající asynchronní žádost o odpojení.

EndReceive(IAsyncResult, SocketError)

Ukončí čekající asynchronní čtení.

EndReceive(IAsyncResult)

Ukončí čekající asynchronní čtení.

EndReceiveFrom(IAsyncResult, EndPoint)

Ukončí čekající asynchronní čtení z konkrétního koncového bodu.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Ukončí čekající asynchronní čtení z konkrétního koncového bodu. Tato metoda také odhalí více informací o paketu než EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult, SocketError)

Ukončí čekající asynchronní odeslání.

EndSend(IAsyncResult)

Ukončí čekající asynchronní odeslání.

EndSendFile(IAsyncResult)

Ukončí čekající asynchronní odeslání souboru.

EndSendTo(IAsyncResult)

Ukončí čekající asynchronní odeslání do konkrétního umístění.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
Finalize()

Uvolní prostředky používané Socket třídou.

GetHashCode()

Vrátí hodnotu hash pro Socket instanci.

GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Získá hodnotu možnosti soketu pomocí identifikátorů názvu a úrovně specifické pro platformu.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Vrátí zadané Socket nastavení možnosti reprezentované jako pole bajtů.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Vrátí hodnotu zadané Socket možnosti v matici.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Vrátí hodnotu zadané Socket možnosti reprezentované jako objekt.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
IOControl(Int32, Byte[], Byte[])

Nastaví režimy provozu nízké úrovně pro Socket použití číselných řídicích kódů.

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

Nastaví režimy provozu nízké úrovně pro Socket použití výčtu IOControlCode k určení řídicích kódů.

Listen()

Umístí stav Socket naslouchání.

Listen(Int32)

Umístí stav Socket naslouchání.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
Poll(Int32, SelectMode)

Určuje stav Socket.

Poll(TimeSpan, SelectMode)

Určuje stav Socket.

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

Přijímá data z vazby Socket do vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

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

Přijme zadaný počet bajtů z vazby Socket do zadané pozice posunu vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Přijme zadaný počet bajtů dat z vazby Socket do vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

Receive(Byte[], SocketFlags)

Přijímá data z vazby Socket do vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

Receive(Byte[])

Přijímá data z vazby Socket do vyrovnávací paměti pro příjem.

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

Přijímá data z vazby Socket do seznamu vyrovnávacích pamětí příjmu pomocí zadaného SocketFlags.

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

Přijímá data z vazby Socket do seznamu vyrovnávacích pamětí příjmu pomocí zadaného SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Přijímá data z vazby Socket do seznamu vyrovnávacích pamětí příjmu.

Receive(Span<Byte>, SocketFlags, SocketError)

Přijímá data z vazby Socket do vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

Receive(Span<Byte>, SocketFlags)

Přijímá data z vazby Socket do vyrovnávací paměti příjmu pomocí zadaného SocketFlags.

Receive(Span<Byte>)

Přijímá data z vazby Socket do vyrovnávací paměti pro příjem.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Přijímá data z připojeného soketu.

ReceiveAsync(ArraySegment<Byte>)

Přijímá data z připojeného soketu.

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

Přijímá data z připojeného soketu.

ReceiveAsync(IList<ArraySegment<Byte>>)

Přijímá data z připojeného soketu.

ReceiveAsync(Memory<Byte>, CancellationToken)

Přijímá data z připojeného soketu.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Přijímá data z připojeného soketu.

ReceiveAsync(SocketAsyncEventArgs)

Zahájí asynchronní požadavek na příjem dat z připojeného Socket objektu.

ReceiveFrom(Byte[], EndPoint)

Přijme datagram do vyrovnávací paměti dat a uloží koncový bod.

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

Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

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

Přijme zadaný počet bajtů do vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Přijme datagram do vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

ReceiveFrom(Span<Byte>, EndPoint)

Přijme datagram do vyrovnávací paměti dat a uloží koncový bod.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Přijme datagram do vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Přijme datagram do vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Přijímá data a vrací koncový bod odesílajícího hostitele.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Přijímá data a vrací koncový bod odesílajícího hostitele.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Přijímá data a vrací koncový bod odesílajícího hostitele.

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

Přijímá data a vrací koncový bod odesílajícího hostitele.

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

Přijme datagram do vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod.

ReceiveFromAsync(SocketAsyncEventArgs)

Začne asynchronně přijímat data ze zadaného síťového zařízení.

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

Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod a informace o paketech.

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

Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného socketFlagsa uloží koncový bod a informace o paketech.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Přijme data a vrátí další informace o odesílateli zprávy.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Přijme data a vrátí další informace o odesílateli zprávy.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Přijme data a vrátí další informace o odesílateli zprávy.

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

Přijme data a vrátí další informace o odesílateli zprávy.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění v datové vyrovnávací paměti pomocí zadaného SocketFlagsa ukládá koncový bod a informace o paketech.

Select(IList, IList, IList, Int32)

Určuje stav jednoho nebo více soketů.

Select(IList, IList, IList, TimeSpan)

Určuje stav jednoho nebo více soketů.

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

Odešle zadaný počet bajtů dat připojenému Socket, počínaje zadaným posunem a použitím zadaného SocketFlags.

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

Odešle zadaný počet bajtů dat připojenému Socket, počínaje zadaným posunem a použitím zadaného SocketFlags.

Send(Byte[], Int32, SocketFlags)

Pomocí zadaného počtu bajtů dat odešle připojeným Socketdatům zadaný SocketFlagspočet bajtů .

Send(Byte[], SocketFlags)

Odešle data připojenému Socket pomocí zadaného SocketFlags.

Send(Byte[])

Odesílá data připojenému Socket.

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

Odešle sadu vyrovnávacích pamětí v seznamu připojenému Socketpomocí zadaného SocketFlags.

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

Odešle sadu vyrovnávacích pamětí v seznamu připojenému Socketpomocí zadaného SocketFlags.

Send(IList<ArraySegment<Byte>>)

Odešle sadu vyrovnávacích pamětí v seznamu připojenému Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Odešle data připojenému Socket pomocí zadaného SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

Odešle data připojenému Socket pomocí zadaného SocketFlags.

Send(ReadOnlySpan<Byte>)

Odesílá data připojenému Socket.

SendAsync(ArraySegment<Byte>, SocketFlags)

Odesílá data na připojeném soketu.

SendAsync(ArraySegment<Byte>)

Odesílá data na připojeném soketu.

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

Odesílá data na připojeném soketu.

SendAsync(IList<ArraySegment<Byte>>)

Odesílá data na připojeném soketu.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Odesílá data na připojeném soketu.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Odesílá data na připojeném soketu.

SendAsync(SocketAsyncEventArgs)

Odesílá data asynchronně do připojeného Socket objektu.

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

Odešle soubor fileName a vyrovnávací paměti dat do připojeného Socket objektu pomocí zadané TransmitFileOptions hodnoty.

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

Odešle soubor fileName a vyrovnávací paměti dat do připojeného Socket objektu pomocí zadané TransmitFileOptions hodnoty.

SendFile(String)

Odešle soubor fileName do připojeného Socket objektu s příznakem UseDefaultWorkerThread přenosu.

SendFileAsync(String, CancellationToken)

Odešle soubor fileName do připojeného Socket objektu.

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

Odešle soubor fileName a vyrovnávací paměti dat do připojeného Socket objektu pomocí zadané TransmitFileOptions hodnoty.

SendPacketsAsync(SocketAsyncEventArgs)

Odešle kolekci souborů nebo do vyrovnávací paměti vyrovnávací paměti asynchronně připojenému Socket objektu.

SendTo(Byte[], EndPoint)

Odešle data do zadaného koncového bodu.

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

Odešle zadaný počet bajtů dat do zadaného koncového bodu, počínaje zadaným umístěním v vyrovnávací paměti a použitím zadaného SocketFlags.

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

Pomocí zadaného koncového bodu odešle zadaný počet bajtů dat do zadaného SocketFlagskoncového bodu.

SendTo(Byte[], SocketFlags, EndPoint)

Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu .

SendTo(ReadOnlySpan<Byte>, EndPoint)

Odešle data do zadaného koncového bodu.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu .

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu .

SendToAsync(ArraySegment<Byte>, EndPoint)

Odešle data určenému vzdálenému hostiteli.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Odešle data určenému vzdálenému hostiteli.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Odešle data určenému vzdálenému hostiteli.

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

Odešle data určenému vzdálenému hostiteli.

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

Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu .

SendToAsync(SocketAsyncEventArgs)

Odesílá data asynchronně na konkrétního vzdáleného hostitele.

SetIPProtectionLevel(IPProtectionLevel)

Nastaví úroveň ochrany IP na soketu.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Nastaví hodnotu možnosti soketu pomocí identifikátorů úrovní a názvů specifických pro platformu.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Nastaví zadanou možnost na zadanou SocketBoolean hodnotu.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako pole bajtů.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Nastaví zadanou možnost na zadanou Socket celočíselnou hodnotu.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Nastaví zadanou možnost na zadanou Socket hodnotu reprezentovanou jako objekt.

Shutdown(SocketShutdown)

Zakáže odesílání a přijímání na .Socket

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Uvolní všechny prostředky používané nástrojem Socket.

Metody rozšíření

Name Description
AcceptAsync(Socket, Socket)

Provede asynchronní operaci, která přijme příchozí pokus o připojení na soketu.

AcceptAsync(Socket)

Provede asynchronní operaci, která přijme příchozí pokus o připojení na soketu.

ConnectAsync(Socket, EndPoint, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(Socket, EndPoint)

Vytvoří připojení ke vzdálenému hostiteli.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli, který je určený IP adresou a číslem portu.

ConnectAsync(Socket, IPAddress, Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen IP adresou a číslem portu.

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

Vytvoří připojení ke vzdálenému hostiteli, který je určený polem IP adres a číslem portu.

ConnectAsync(Socket, IPAddress[], Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen polem IP adres a číslem portu.

ConnectAsync(Socket, String, Int32, CancellationToken)

Vytvoří připojení ke vzdálenému hostiteli, který je určený názvem hostitele a číslem portu.

ConnectAsync(Socket, String, Int32)

Vytvoří připojení ke vzdálenému hostiteli. Hostitel je určen názvem hostitele a číslem portu.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Přijímá data z připojeného soketu.

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

Přijímá data z připojeného soketu.

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

Přijímá data z připojeného soketu.

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

Přijímá data ze zadaného síťového zařízení.

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

Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod a informace o paketech.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Odesílá data do připojeného soketu.

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

Odesílá data do připojeného soketu.

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

Odesílá data do připojeného soketu.

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

Odesílá data asynchronně na konkrétního vzdáleného hostitele.

Platí pro

Bezpečný přístup z více vláken

Je bezpečné provést operaci odesílání a příjmu současně v Socket instanci, ale nedoporučuje se vydávat více volání pro odesílání nebo více příjmu současně. V závislosti na implementaci základní platformy to může vést k nezamýšleným prokládání dat pro odesílání nebo přijímání velkých nebo více vyrovnávacích pamětí.

Viz také