Socket Klasa

Definicja

Implementuje interfejs gniazd Berkeley.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Dziedziczenie
Socket
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak Socket klasa może służyć do wysyłania danych do serwera HTTP, drukowania odpowiedzi ASCII na standardowe dane wyjściowe. Ten przykład blokuje wątek wywołujący do momentu odebrania całej strony.

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

W następnym przykładzie pokazano ten sam scenariusz HTTP GET, używając asynchronicznych interfejsów API opartych na zadaniach, a jednocześnie przekazując obiekt CancellationToken do metod asynchronicznych, co umożliwia anulowanie całej operacji.

Porada

SocketMetody asynchroniczne, które zwykle nie zwracają CancellationTokenTaskwartości , która jest przydzielana na stercie. Przeciążenia, które można anulować, są zawsze ValueTaskzwracane. Użycie ich pomaga zmniejszyć alokacje w kodzie o wysokiej wydajności.

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

Uwagi

Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Uwagi dotyczące dodatkowego interfejsu API dla gniazda.

Konstruktory

Socket(AddressFamily, SocketType, ProtocolType)

Inicjuje nowe wystąpienie klasy przy użyciu określonej rodziny adresów Socket , typu gniazda i protokołu.

Socket(SafeSocketHandle)

Inicjuje Socket nowe wystąpienie klasy dla określonego uchwytu gniazda.

Socket(SocketInformation)

Inicjuje Socket nowe wystąpienie klasy przy użyciu określonej wartości zwróconej z DuplicateAndClose(Int32)klasy .

Socket(SocketType, ProtocolType)

Inicjuje Socket nowe wystąpienie klasy przy użyciu określonego typu gniazda i protokołu. Jeśli system operacyjny obsługuje protokół IPv6, ten konstruktor tworzy gniazdo w trybie podwójnym; w przeciwnym razie tworzy gniazdo IPv4.

Właściwości

AddressFamily

Pobiera rodzinę adresów .Socket

Available

Pobiera ilość danych odebranych z sieci i jest dostępna do odczytu.

Blocking

Pobiera lub ustawia wartość wskazującą, czy Socket element jest w trybie blokowania.

Connected

Pobiera wartość wskazującą, czy Socket element jest połączony z hostem zdalnym od ostatniego Send lub Receive operacji.

DontFragment

Pobiera lub ustawia wartość określającą, czy Socket zezwala na fragmentacje datagramów protokołu internetowego (IP).

DualMode

Pobiera lub ustawia wartość określającą, czy Socket jest to gniazdo w trybie podwójnym używane zarówno dla protokołów IPv4, jak i IPv6.

EnableBroadcast

Pobiera lub ustawia wartość określającą Boolean , czy Socket można wysyłać pakiety emisji.

ExclusiveAddressUse

Pobiera lub ustawia wartość określającą Boolean , czy Socket zezwala tylko jednemu procesowi na powiązanie z portem.

Handle

Pobiera uchwyt systemu operacyjnego dla elementu Socket.

IsBound

Pobiera wartość wskazującą, czy element Socket jest powiązany z określonym portem lokalnym.

LingerState

Pobiera lub ustawia wartość określającą, czy Socket opóźnienie zamknięcia gniazda podczas próby wysłania wszystkich oczekujących danych.

LocalEndPoint

Pobiera lokalny punkt końcowy.

MulticastLoopback

Pobiera lub ustawia wartość określającą, czy wychodzące pakiety multiemisji są dostarczane do aplikacji wysyłającej.

NoDelay

Pobiera lub ustawia wartość określającą Boolean , czy strumień Socket używa algorytmu Nagle.

OSSupportsIPv4

Wskazuje, czy podstawowy system operacyjny i adaptery sieciowe obsługują protokół internetowy w wersji 4 (IPv4).

OSSupportsIPv6

Wskazuje, czy podstawowy system operacyjny i adaptery sieciowe obsługują protokół internetowy w wersji 6 (IPv6).

OSSupportsUnixDomainSockets

Wskazuje, czy bazowy system operacyjny obsługuje gniazda domeny systemu Unix.

ProtocolType

Pobiera typ protokołu .Socket

ReceiveBufferSize

Pobiera lub ustawia wartość określającą rozmiar buforu odbierania elementu Socket.

ReceiveTimeout

Pobiera lub ustawia wartość określającą czas, po którym upłynął limit czasu synchronicznego Receive wywołania.

RemoteEndPoint

Pobiera zdalny punkt końcowy.

SafeHandle

Pobiera element SafeSocketHandle reprezentujący uchwyt gniazda, który jest hermetyzowany przez bieżący Socket obiekt.

SendBufferSize

Pobiera lub ustawia wartość określającą rozmiar buforu wysyłania elementu Socket.

SendTimeout

Pobiera lub ustawia wartość określającą czas, po którym upłynął limit czasu synchronicznego Send wywołania.

SocketType

Pobiera typ elementu Socket.

SupportsIPv4
Przestarzałe.
Przestarzałe.
Przestarzałe.

Pobiera wartość wskazującą, czy obsługa protokołu IPv4 jest dostępna i włączona na bieżącym hoście.

SupportsIPv6
Przestarzałe.
Przestarzałe.
Przestarzałe.

Pobiera wartość wskazującą, czy platforma obsługuje protokół IPv6 dla niektórych przestarzałych Dns elementów członkowskich.

Ttl

Pobiera lub ustawia wartość określającą wartość Czas wygaśnięcia (TTL) pakietów protokołu internetowego (IP) wysyłanych przez Socketelement .

UseOnlyOverlappedIO
Przestarzałe.

Pobiera lub ustawia wartość określającą, czy gniazdo powinno używać tylko nakładanego trybu we/wy. Na platformie .NET 5+ (w tym wersje platformy .NET Core) wartość jest zawsze false.

Metody

Accept()

Tworzy nowe Socket dla nowo utworzonego połączenia.

AcceptAsync()

Akceptuje połączenie przychodzące.

AcceptAsync(CancellationToken)

Akceptuje połączenie przychodzące.

AcceptAsync(Socket)

Akceptuje połączenie przychodzące.

AcceptAsync(Socket, CancellationToken)

Akceptuje połączenie przychodzące.

AcceptAsync(SocketAsyncEventArgs)

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego.

BeginAccept(AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego.

BeginAccept(Int32, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego i odebrania pierwszego bloku danych wysyłanych przez aplikację kliencką.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego z określonego gniazda i odbiera pierwszy blok danych wysyłanych przez aplikację kliencką.

BeginConnect(EndPoint, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określony przez IPAddress numer portu i .

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

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez tablicę IPAddress i numer portu.

BeginConnect(String, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia hosta zdalnego. Host jest określany przez nazwę hosta i numer portu.

BeginDisconnect(Boolean, AsyncCallback, Object)

Rozpoczyna żądanie asynchroniczne, aby odłączyć się od zdalnego punktu końcowego.

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

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

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

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

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

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

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

Zaczyna asynchronicznie odbierać dane z połączonego elementu Socket.

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

Zaczyna asynchronicznie odbierać dane z określonego urządzenia sieciowego.

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

Zaczyna asynchronicznie odbierać określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.

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

Wysyła dane asynchronicznie do połączonego Socketelementu .

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

Wysyła dane asynchronicznie do połączonego Socketelementu .

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

Wysyła dane asynchronicznie do połączonego Socketelementu .

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

Wysyła dane asynchronicznie do połączonego Socketelementu .

BeginSendFile(String, AsyncCallback, Object)

Wysyła plik fileName do połączonego Socket obiektu przy użyciu flagi UseDefaultWorkerThread .

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

Wysyła plik i bufory danych asynchronicznie do połączonego Socket obiektu.

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

Wysyła dane asynchronicznie do określonego hosta zdalnego.

Bind(EndPoint)

Kojarzy element Socket z lokalnym punktem końcowym.

CancelConnectAsync(SocketAsyncEventArgs)

Anuluje żądanie asynchroniczne dla połączenia hosta zdalnego.

Close()

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby.

Close(Int32)

Socket Zamyka połączenie i zwalnia wszystkie skojarzone zasoby z określonym limitem czasu, aby zezwolić na wysyłanie danych w kolejce.

Connect(EndPoint)

Ustanawia połączenie z hostem zdalnym.

Connect(IPAddress, Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określony przez adres IP i numer portu.

Connect(IPAddress[], Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określany przez tablicę adresów IP i numer portu.

Connect(String, Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określany przez nazwę hosta i numer portu.

ConnectAsync(EndPoint)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(EndPoint, CancellationToken)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(IPAddress, Int32)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(IPAddress, Int32, CancellationToken)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(IPAddress[], Int32)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.

ConnectAsync(String, Int32)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(String, Int32, CancellationToken)

Ustanawia połączenie z hostem zdalnym.

Disconnect(Boolean)

Zamyka połączenie gniazda i umożliwia ponowne użycie gniazda.

DisconnectAsync(Boolean, CancellationToken)

Odłącza podłączone gniazdo od hosta zdalnego.

DisconnectAsync(SocketAsyncEventArgs)

Rozpoczyna żądanie asynchroniczne, aby odłączyć się od zdalnego punktu końcowego.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy Socket.

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez Socketprogram i opcjonalnie usuwa zasoby zarządzane.

DuplicateAndClose(Int32)

Duplikuje odwołanie gniazda dla procesu docelowego i zamyka gniazdo dla tego procesu.

EndAccept(Byte[], IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy Socket obiekt do obsługi komunikacji z hostem zdalnym. Ta metoda zwraca bufor zawierający dane początkowe przesyłane.

EndAccept(Byte[], Int32, IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy Socket obiekt do obsługi komunikacji z hostem zdalnym. Ta metoda zwraca bufor zawierający dane początkowe i liczbę przetransferowanych bajtów.

EndAccept(IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy Socket do obsługi komunikacji z hostem zdalnym.

EndConnect(IAsyncResult)

Kończy oczekujące żądanie połączenia asynchronicznego.

EndDisconnect(IAsyncResult)

Kończy oczekujące żądanie asynchronicznego rozłączenia.

EndReceive(IAsyncResult)

Kończy oczekujący odczyt asynchroniczny.

EndReceive(IAsyncResult, SocketError)

Kończy oczekujący odczyt asynchroniczny.

EndReceiveFrom(IAsyncResult, EndPoint)

Kończy oczekujący asynchroniczny odczyt z określonego punktu końcowego.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Kończy oczekujący asynchroniczny odczyt z określonego punktu końcowego. Ta metoda ujawnia również więcej informacji o pakiecie niż EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Kończy oczekujące wysyłanie asynchroniczne.

EndSend(IAsyncResult, SocketError)

Kończy oczekujące wysyłanie asynchroniczne.

EndSendFile(IAsyncResult)

Kończy oczekujące asynchroniczne wysyłanie pliku.

EndSendTo(IAsyncResult)

Kończy oczekujące asynchroniczne wysyłanie do określonej lokalizacji.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Finalize()

Zwalnia zasoby używane przez klasę Socket .

GetHashCode()

Zwraca wartość skrótu Socket dla wystąpienia.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Pobiera wartość opcji gniazda przy użyciu identyfikatorów nazw i poziomów specyficznych dla platformy.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Zwraca wartość określonej Socket opcji reprezentowanej jako obiekt.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Zwraca określone Socket ustawienie opcji reprezentowane jako tablica bajtów.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Zwraca wartość określonej Socket opcji w tablicy.

GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IOControl(Int32, Byte[], Byte[])

Ustawia tryby operacyjne niskiego poziomu dla Socket użycia kodów kontrolnych liczbowych.

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

Ustawia tryby operacyjne niskiego poziomu dla Socket funkcji przy użyciu wyliczenia IOControlCode w celu określenia kodów kontrolnych.

Listen()

Socket Places w stanie nasłuchiwania.

Listen(Int32)

Socket Places w stanie nasłuchiwania.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Poll(Int32, SelectMode)

Określa stan obiektu Socket.

Poll(TimeSpan, SelectMode)

Określa stan obiektu Socket.

Receive(Byte[])

Odbiera dane z powiązanego Socket do buforu odbierania.

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

Odbiera określoną liczbę bajtów od powiązanej Socket do określonej pozycji przesunięcia buforu odbierania przy użyciu określonego SocketFlagsparametru .

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

Odbiera dane z powiązanego Socket do buforu odbierania przy użyciu określonego SocketFlagselementu .

Receive(Byte[], Int32, SocketFlags)

Odbiera określoną liczbę bajtów danych z powiązanego Socket do buforu odbierania przy użyciu określonego SocketFlagselementu .

Receive(Byte[], SocketFlags)

Odbiera dane z powiązanego Socket do buforu odbierania przy użyciu określonego SocketFlagselementu .

Receive(IList<ArraySegment<Byte>>)

Odbiera dane z powiązanej Socket listy buforów odbierania.

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

Odbiera dane z powiązanej Socket listy buforów odbierania przy użyciu określonego SocketFlagselementu .

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

Odbiera dane z powiązanej Socket listy buforów odbierania przy użyciu określonego SocketFlagselementu .

Receive(Span<Byte>)

Odbiera dane z powiązanego Socket do buforu odbierania.

Receive(Span<Byte>, SocketFlags)

Odbiera dane z powiązanego Socket do buforu odbierania przy użyciu określonego SocketFlagselementu .

Receive(Span<Byte>, SocketFlags, SocketError)

Odbiera dane z powiązanego Socket do buforu odbierania przy użyciu określonego SocketFlagselementu .

ReceiveAsync(ArraySegment<Byte>)

Odbiera dane z podłączonego gniazda.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Odbiera dane z podłączonego gniazda.

ReceiveAsync(IList<ArraySegment<Byte>>)

Odbiera dane z podłączonego gniazda.

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

Odbiera dane z podłączonego gniazda.

ReceiveAsync(Memory<Byte>, CancellationToken)

Odbiera dane z podłączonego gniazda.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Odbiera dane z podłączonego gniazda.

ReceiveAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie odbierania danych z połączonego Socket obiektu.

ReceiveFrom(Byte[], EndPoint)

Odbiera datagram do buforu danych i przechowuje punkt końcowy.

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

Odbiera określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

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

Odbiera określoną liczbę bajtów do buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Odbiera datagram do buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

ReceiveFrom(Span<Byte>, EndPoint)

Odbiera datagram do buforu danych i przechowuje punkt końcowy.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Odbiera datagram do buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Odbiera datagram do buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Odbiera dane i zwraca punkt końcowy hosta wysyłającego.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Odbiera dane i zwraca punkt końcowy hosta wysyłającego.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Odbiera dane i zwraca punkt końcowy hosta wysyłającego.

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

Odbiera dane i zwraca punkt końcowy hosta wysyłającego.

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

Odbiera datagram do buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje punkt końcowy.

ReceiveFromAsync(SocketAsyncEventArgs)

Zaczyna asynchronicznie odbierać dane z określonego urządzenia sieciowego.

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

Odbiera określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.

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

Odbiera określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości socketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości.

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

Odbiera dane i zwraca dodatkowe informacje o nadawcy wiadomości.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Zaczyna asynchronicznie odbierać określoną liczbę bajtów danych do określonej lokalizacji w buforze danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.

Select(IList, IList, IList, Int32)

Określa stan co najmniej jednego gniazda.

Select(IList, IList, IList, TimeSpan)

Określa stan co najmniej jednego gniazda.

Send(Byte[])

Wysyła dane do połączonego Socket.

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

Wysyła określoną liczbę bajtów danych do połączonego Socket, zaczynając od określonego przesunięcia i używając określonego SocketFlags.

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

Wysyła określoną liczbę bajtów danych do połączonego Socket, zaczynając od określonego przesunięcia i używając określonego SocketFlags.

Send(Byte[], Int32, SocketFlags)

Wysyła określoną liczbę bajtów danych do połączonego Socketobiektu przy użyciu określonego SocketFlagselementu .

Send(Byte[], SocketFlags)

Wysyła dane do połączonego Socket przy użyciu określonego SocketFlagselementu .

Send(IList<ArraySegment<Byte>>)

Wysyła zestaw buforów na liście do połączonego Socketelementu .

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

Wysyła zestaw buforów na liście do połączonego Socketelementu , przy użyciu określonego SocketFlagselementu .

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

Wysyła zestaw buforów na liście do połączonego Socketelementu , przy użyciu określonego SocketFlagselementu .

Send(ReadOnlySpan<Byte>)

Wysyła dane do połączonego Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Wysyła dane do połączonego Socket przy użyciu określonego SocketFlagselementu .

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Wysyła dane do połączonego Socket przy użyciu określonego SocketFlagselementu .

SendAsync(ArraySegment<Byte>)

Wysyła dane do połączonego gniazda.

SendAsync(ArraySegment<Byte>, SocketFlags)

Wysyła dane do połączonego gniazda.

SendAsync(IList<ArraySegment<Byte>>)

Wysyła dane do połączonego gniazda.

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

Wysyła dane do połączonego gniazda.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Wysyła dane do połączonego gniazda.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Wysyła dane do połączonego gniazda.

SendAsync(SocketAsyncEventArgs)

Wysyła dane asynchronicznie do połączonego Socket obiektu.

SendFile(String)

Wysyła plik fileName do połączonego Socket obiektu z flagą transmisji UseDefaultWorkerThread .

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

Wysyła plik fileName i bufory danych do połączonego Socket obiektu przy użyciu określonej TransmitFileOptions wartości.

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

Wysyła plik fileName i bufory danych do połączonego Socket obiektu przy użyciu określonej TransmitFileOptions wartości.

SendFileAsync(String, CancellationToken)

Wysyła plik fileName do połączonego Socket obiektu.

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

Wysyła plik fileName i bufory danych do połączonego Socket obiektu przy użyciu określonej TransmitFileOptions wartości.

SendPacketsAsync(SocketAsyncEventArgs)

Wysyła kolekcję plików lub buforów danych pamięci asynchronicznie do połączonego Socket obiektu.

SendTo(Byte[], EndPoint)

Wysyła dane do określonego punktu końcowego.

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

Wysyła określoną liczbę bajtów danych do określonego punktu końcowego, zaczynając od określonej lokalizacji w buforze i używając określonej SocketFlagswartości .

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

Wysyła określoną liczbę bajtów danych do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .

SendTo(Byte[], SocketFlags, EndPoint)

Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .

SendTo(ReadOnlySpan<Byte>, EndPoint)

Wysyła dane do określonego punktu końcowego.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .

SendToAsync(ArraySegment<Byte>, EndPoint)

Wysyła dane do określonego hosta zdalnego.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Wysyła dane do określonego hosta zdalnego.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Wysyła dane do określonego hosta zdalnego.

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

Wysyła dane do określonego hosta zdalnego.

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

Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlagselementu .

SendToAsync(SocketAsyncEventArgs)

Wysyła dane asynchronicznie do określonego hosta zdalnego.

SetIPProtectionLevel(IPProtectionLevel)

Ustawia poziom ochrony adresu IP na gniazdach.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Ustawia wartość opcji gniazda przy użyciu identyfikatorów nazw i poziomów specyficznych dla platformy.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Ustawia określoną Socket opcję na określoną Boolean wartość.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Ustawia określoną opcję na określoną Socket wartość reprezentowaną jako tablica bajtów.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Ustawia określoną Socket opcję na określoną wartość całkowitą.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Ustawia określoną opcję na określoną Socket wartość reprezentowaną jako obiekt.

Shutdown(SocketShutdown)

Wyłącza wysyłanie i odbieranie w obiekcie Socket.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwalnia wszelkie zasoby używane przez element Socket.

Metody rozszerzania

AcceptAsync(Socket)

Wykonuje operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego na gniazdach.

AcceptAsync(Socket, Socket)

Wykonuje operację asynchroniczną, aby zaakceptować próbę połączenia przychodzącego na gniazdach.

ConnectAsync(Socket, EndPoint)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(Socket, EndPoint, CancellationToken)

Ustanawia połączenie z hostem zdalnym.

ConnectAsync(Socket, IPAddress, Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określony przez adres IP i numer portu.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Ustanawia połączenie z hostem zdalnym określonym przez adres IP i numer portu.

ConnectAsync(Socket, IPAddress[], Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określany przez tablicę adresów IP i numer portu.

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

Ustanawia połączenie z hostem zdalnym określonym przez tablicę adresów IP i numer portu.

ConnectAsync(Socket, String, Int32)

Ustanawia połączenie z hostem zdalnym. Host jest określany przez nazwę hosta i numer portu.

ConnectAsync(Socket, String, Int32, CancellationToken)

Ustanawia połączenie z hostem zdalnym określonym przez nazwę hosta i numer portu.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Odbiera dane z podłączonego gniazda.

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

Odbiera dane z podłączonego gniazda.

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

Odbiera dane z podłączonego gniazda.

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

Odbiera dane z określonego urządzenia sieciowego.

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

Odbiera określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Wysyła dane do połączonego gniazda.

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

Wysyła dane do połączonego gniazda.

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

Wysyła dane do połączonego gniazda.

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

Wysyła dane asynchronicznie do określonego hosta zdalnego.

Dotyczy

Bezpieczeństwo wątkowe

Można bezpiecznie wykonać operację wysyłania i odbierania jednocześnie na Socket wystąpieniu, ale nie zaleca się jednoczesnego wystawiania wielu wywołań wysyłania lub odbierania wielu połączeń. W zależności od implementacji platformy bazowej może to prowadzić do niezamierzonego przeplatania danych dla dużych lub wielo buforowych wysyłania lub odbierania.

Zobacz też