Поделиться через


Socket Класс

Определение

Реализует интерфейс сокетов Беркли.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Наследование
Socket
Реализации

Примеры

В следующем примере показано, как Socket можно использовать класс для отправки данных на HTTP-сервер, выводя ответ ASCII на стандартные выходные данные. Этот пример блокирует вызывающий поток, пока не будет получена вся страница.

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

В следующем примере демонстрируется тот же сценарий HTTP GET с использованием асинхронных API на основе задач, а также перенаправления CancellationToken в асинхронные методы, что делает всю операцию отменяемой.

Совет

SocketАсинхронные методы, которые не принимают CancellationToken , обычно возвращают Taskобъект , выделенный в куче. Отменяемые перегрузки всегда ValueTaskвозвращаются; их использование помогает сократить выделение в высокопроизводительном коде.

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

Комментарии

Дополнительные сведения об этом API см. в разделе Дополнительные примечания API для Socket.

Конструкторы

Socket(AddressFamily, SocketType, ProtocolType)

Инициализирует новый экземпляр класса Socket, используя заданные семейство адресов, тип сокета и протокол.

Socket(SafeSocketHandle)

Инициализирует новый экземпляр Socket класса для указанного дескриптора сокета.

Socket(SocketInformation)

Инициализирует новый экземпляр класса Socket с помощью указанного значения, возвращенного из объекта DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Инициализирует новый экземпляр класса Socket, используя указанный тип сокетов и протокол. Если операционная система поддерживает протокол IPv6, этот конструктор создает сокет с двумя режимами; В противном случае создается сокет IPv4.

Свойства

AddressFamily

Получает семейство адресов объекта Socket.

Available

Возвращает значение, указывающее количество полученных из сети и доступных для чтения данных.

Blocking

Возвращает или задает значение, определяющее, находится ли объект Socket в заблокированном режиме.

Connected

Получает значение, указывающее, подключается ли объект Socket к удаленному узлу в результате последней операции Send или Receive.

DontFragment

Возвращает или задает значение, указывающее, разрешает ли объект Socket выполнение фрагментации датаграмм протокола IP.

DualMode

Возвращает или задает значение, указывающее, является ли Socket сокет с двойным режимом, используемым для IPv4 и IPv6.

EnableBroadcast

Возвращает или задает Boolean значение, указывающее, может ли Socket объект отправлять широковещательные пакеты.

ExclusiveAddressUse

Возвращает или задает значение Boolean, указывающее, разрешает ли объект Socket привязку к порту только одного процесса.

Handle

Возвращает дескриптор операционной системы для объекта Socket.

IsBound

Получает значение, указывающее, привязан ли объект Socket к конкретному локальному порту.

LingerState

Возвращает или задает значение, указывающее, будет ли объект Socket задерживать закрытие сокета при попытке отправки всех отложенных данных.

LocalEndPoint

Возвращает локальную конечную точку.

MulticastLoopback

Возвращает или задает значение, указывающее, могут ли доставляться исходящие пакеты многоадресной рассылки в передающем приложении.

NoDelay

Возвращает или задает значение Boolean, указывающее, используется ли поток Socket в алгоритме Nagle.

OSSupportsIPv4

Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv4.

OSSupportsIPv6

Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv6.

OSSupportsUnixDomainSockets

Указывает, поддерживает ли базовая операционная система сокеты доменов UNIX.

ProtocolType

Получает тип протокола объекта Socket.

ReceiveBufferSize

Получает или задает значение, задающее размер приемного буфера объекта Socket.

ReceiveTimeout

Получает или устанавливает значение, указывающее промежуток времени, после которого для синхронного вызова Receive истечет время тайм-аута.

RemoteEndPoint

Возвращает удаленную конечную точку.

SafeHandle

Получает SafeSocketHandle, представляющий дескриптор сокета, инкапсулируемый текущим объектом Socket.

SendBufferSize

Получает или задает значение, определяющее размер буфера передачи объекта Socket.

SendTimeout

Получает или устанавливает значение, указывающее промежуток времени, после которого для синхронного вызова Send истечет время тайм-аута.

SocketType

Возвращает тип службы Socket.

SupportsIPv4
Устаревшие..
Устаревшие..
Устаревшие..

Возвращает значение, указывающее, доступна ли на текущем узле поддержка протокола IPv4 и включена ли эта функция.

SupportsIPv6
Устаревшие..
Устаревшие..
Устаревшие..

Получает значение, указывающее, поддерживает ли Framework протокол IPv6 для определенных устаревших членов Dns.

Ttl

Получает или задает значение, задающее время существования (TTL) IP-пакетов, отправленных объектом Socket.

UseOnlyOverlappedIO
Устаревшие..

Возвращает или задает значение, указывающее, должен ли сокет использовать только режим перекрывающегося ввода-вывода. В .NET 5+ (включая версии .NET Core) значение всегда falseравно .

Методы

Accept()

Создает новый объект Socket для заново созданного подключения.

AcceptAsync()

Принимает входящее подключение.

AcceptAsync(CancellationToken)

Принимает входящее подключение.

AcceptAsync(Socket)

Принимает входящее подключение.

AcceptAsync(Socket, CancellationToken)

Принимает входящее подключение.

AcceptAsync(SocketAsyncEventArgs)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

BeginAccept(AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

BeginAccept(Int32, AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения и получить первый блок данных, посланных клиентским приложением.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения с указанного сокета и получить первый блок данных, посланных клиентским приложением.

BeginConnect(EndPoint, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. узел задается объектом IPAddress и номером порта.

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

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. узел задается массивом IPAddress и номером порта.

BeginConnect(String, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. Узел задается именем узла и номером порта.

BeginDisconnect(Boolean, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для отключения от удаленной конечной точки.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с указанного сетевого устройства.

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

Начинает асинхронный прием заданного числа байтов данных в указанное место буфера данных, используя заданный объект SocketFlags, а также сохраняет конечную точку и информацию пакета.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

BeginSendFile(String, AsyncCallback, Object)

Отправляет файл fileName на подключенный объект Socket, используя флаг UseDefaultWorkerThread.

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

Выполняет асинхронную передачу файла и буферов данных на подключенный объект Socket.

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

Асинхронно передает данные на конкретный удаленный узел.

Bind(EndPoint)

Связывает объект Socket с локальной конечной точкой.

CancelConnectAsync(SocketAsyncEventArgs)

Отменяет выполнение асинхронного запроса для подключения к удаленному узлу.

Close()

Закрывает подключение Socket и освобождает все связанные ресурсы.

Close(Int32)

Закрывает подключение Socket и освобождает все связанные ресурсы с заданным временем ожидания, чтобы разрешить отправку данных в очереди.

Connect(EndPoint)

Устанавливает подключение к удаленному узлу.

Connect(IPAddress, Int32)

Устанавливает подключение к удаленному узлу. Узел задается IP-адресом и номером порта.

Connect(IPAddress[], Int32)

Устанавливает подключение к удаленному узлу. Узел задается массивом IP-адресов и номером порта.

Connect(String, Int32)

Устанавливает подключение к удаленному узлу. Узел задается именем узла и номером порта.

ConnectAsync(EndPoint)

Устанавливает подключение к удаленному узлу.

ConnectAsync(EndPoint, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress, Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress[], Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

ConnectAsync(String, Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(String, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

Disconnect(Boolean)

Закрывает подключение к сокету и позволяет повторно его использовать.

DisconnectAsync(Boolean, CancellationToken)

Отключает подключенный сокет от удаленного узла.

DisconnectAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для отключения от удаленной конечной точки.

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса Socket.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Socket, и при необходимости освобождает также управляемые ресурсы.

DuplicateAndClose(Int32)

Дублирует ссылку сокета для конечного процесса и закрывает сокет для этого процесса.

EndAccept(Byte[], IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом. Этот метод возвращает буфер, который содержит начальные данные для передачи.

EndAccept(Byte[], Int32, IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом. Этот метод возвращает буфер, который содержит начальные данные и число переданных байтов.

EndAccept(IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом.

EndConnect(IAsyncResult)

Завершает ожидающий асинхронный запрос на подключение.

EndDisconnect(IAsyncResult)

Завершает ожидающий асинхронный запрос на разъединение.

EndReceive(IAsyncResult)

Завершает отложенное асинхронное чтение.

EndReceive(IAsyncResult, SocketError)

Завершает отложенное асинхронное чтение.

EndReceiveFrom(IAsyncResult, EndPoint)

Завершает отложенное асинхронное чтение с определенной конечной точки.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Завершает отложенное асинхронное чтение с определенной конечной точки. Этот метод также показывает больше информации о пакете, чем метод EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Завершает отложенную операцию асинхронной передачи.

EndSend(IAsyncResult, SocketError)

Завершает отложенную операцию асинхронной передачи.

EndSendFile(IAsyncResult)

Завершает отложенную операцию асинхронной передачи файла.

EndSendTo(IAsyncResult)

Завершает отложенную операцию асинхронной отправки в определенное местоположение.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, используемые классом Socket.

GetHashCode()

Возвращает хэш-значение для экземпляра Socket.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Возвращает значение параметра сокета, используя связанные с платформой идентификаторы имени и уровня.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Возвращает значение указанного параметра Socket, представленного в виде объекта.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Возвращает указанное значение параметра Socket, представленного в виде байтового массива.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Возвращает значение указанного параметра Socket в массиве.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IOControl(Int32, Byte[], Byte[])

Задает низкоуровневые операционные режимы для объекта Socket, используя цифровые коды элементов управления.

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

Задает низкоуровневые операционные режимы для объекта Socket, используя перечисление IOControlCode, чтобы указать коды элементов управления.

Listen()

Устанавливает объект Socket в состояние прослушивания.

Listen(Int32)

Устанавливает объект Socket в состояние прослушивания.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Poll(Int32, SelectMode)

Определяет состояние объекта Socket.

Poll(TimeSpan, SelectMode)

Определяет состояние объекта Socket.

Receive(Byte[])

Возвращает данные из связанного объекта Socket в приемный буфер.

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

Получает указанное число байтов данных из связанного объекта Socket в приемный буфер с указанной позиции смещения, используя заданный объект SocketFlags.

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

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Получает указанное число байтов данных из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Byte[], SocketFlags)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Получает данные из связанного объекта Socket в список приемных буферов.

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

Получает данные из связанного объекта Socket в список приемных буферов, используя заданный объект SocketFlags.

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

Получает данные из связанного объекта Socket в список приемных буферов, используя заданный объект SocketFlags.

Receive(Span<Byte>)

Возвращает данные из связанного объекта Socket в приемный буфер.

Receive(Span<Byte>, SocketFlags)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

ReceiveAsync(ArraySegment<Byte>)

Получает данные из подключенного сокета.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Получает данные из подключенного сокета.

ReceiveAsync(IList<ArraySegment<Byte>>)

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

ReceiveAsync(Memory<Byte>, CancellationToken)

Получает данные из подключенного сокета.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Получает данные из подключенного сокета.

ReceiveAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса, чтобы получить данные из подключенного объекта Socket.

ReceiveFrom(Byte[], EndPoint)

Принимает датаграмму в буфер данных и сохраняет конечную точку.

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

Получает указанное число байтов данных в заданном расположении буфера данных с использованием определенного параметра SocketFlags и сохраняет конечную точку.

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

Получает указанное число байтов во входной буфер, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFrom(Span<Byte>, EndPoint)

Принимает датаграмму в буфер данных и сохраняет конечную точку.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

Получает данные и возвращает конечную точку отправляющего узла.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Получает данные и возвращает конечную точку отправляющего узла.

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Получает данные и возвращает конечную точку отправляющего узла.

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

Получает данные и возвращает конечную точку отправляющего узла.

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

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFromAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного приема данных с указанного сетевого устройства.

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

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного SocketFlags и сохраняет конечную точку и сведения о пакете.

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

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного socketFlags и сохраняет конечную точку и сведения о пакете.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

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

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Начинает асинхронный прием заданного числа байтов данных в указанное место буфера данных, используя заданный объект SocketFlags, а также сохраняет конечную точку и информацию пакета.

Select(IList, IList, IList, Int32)

Определяет состояние одного или нескольких сокетов.

Select(IList, IList, IList, TimeSpan)

Определяет состояние одного или нескольких сокетов.

Send(Byte[])

Передает данные в подключенный объект Socket.

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

Отправляет указанное количество байтов данных в подключенный Socket, начиная с заданного смещения и используя заданный параметр SocketFlags.

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

Отправляет указанное количество байтов данных в подключенный Socket, начиная с заданного смещения и используя заданный параметр SocketFlags.

Send(Byte[], Int32, SocketFlags)

Посылает указанное число байтов данных на подключенный объект Socket, используя заданный объект SocketFlags.

Send(Byte[], SocketFlags)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

Send(IList<ArraySegment<Byte>>)

Отправляет набор буферов в список на подключенный объект Socket.

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

Отправляет набор буферов в список на подключенный объект Socket, используя указанный объект SocketFlags.

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

Отправляет набор буферов в список на подключенный объект Socket, используя указанный объект SocketFlags.

Send(ReadOnlySpan<Byte>)

Передает данные в подключенный объект Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

SendAsync(ArraySegment<Byte>)

Отправляет данные в подключенный сокет.

SendAsync(ArraySegment<Byte>, SocketFlags)

Отправляет данные в подключенный сокет.

SendAsync(IList<ArraySegment<Byte>>)

Отправляет данные в подключенный сокет.

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

Отправляет данные в подключенный сокет.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Отправляет данные в подключенный сокет.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Отправляет данные в подключенный сокет.

SendAsync(SocketAsyncEventArgs)

Выполняет асинхронную передачу данных на подключенный объект Socket.

SendFile(String)

Отправляет файл fileName на подключенный объект Socket, используя флаг передачи UseDefaultWorkerThread.

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

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

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

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

SendFileAsync(String, CancellationToken)

Отправляет файл fileName в подключенный Socket объект.

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

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

SendPacketsAsync(SocketAsyncEventArgs)

Выполняет асинхронную передачу набора файла или буферов данных в памяти на подключенный объект Socket.

SendTo(Byte[], EndPoint)

Посылает данные на указанную конечную точку.

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

Посылает указанное число байтов данных на указанную конечную точку, начиная с заданной позиции буфера и используя указанный объект SocketFlags.

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

Посылает указанное число байтов данных на указанную конечную точку, используя заданный объект SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Посылает данные на указанную конечную точку.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendToAsync(ArraySegment<Byte>, EndPoint)

Отправляет данные на указанный удаленный узел.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Отправляет данные на указанный удаленный узел.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Отправляет данные на указанный удаленный узел.

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

Отправляет данные на указанный удаленный узел.

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

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendToAsync(SocketAsyncEventArgs)

Асинхронно передает данные на конкретный удаленный узел.

SetIPProtectionLevel(IPProtectionLevel)

Задает уровень защиты IP-адресов для сокета.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Задает значение параметра сокета, используя связанные с платформой идентификаторы имени и уровня.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Устанавливает для заданного параметра Socket указанное значение Boolean.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Устанавливает заданное целое значение для указанного параметра Socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.

Shutdown(SocketShutdown)

Блокирует передачу и получение данных для объекта Socket.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IDisposable.Dispose()

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Освобождает все ресурсы, занятые модулем Socket.

Методы расширения

AcceptAsync(Socket)

Выполняет асинхронную операцию для приема попыток входящего подключения через сокет.

AcceptAsync(Socket, Socket)

Выполняет асинхронную операцию для приема попыток входящего подключения через сокет.

ConnectAsync(Socket, EndPoint)

Устанавливает подключение к удаленному узлу.

ConnectAsync(Socket, EndPoint, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(Socket, IPAddress, Int32)

Устанавливает подключение к удаленному узлу. Узел задается IP-адресом и номером порта.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу, который указывается IP-адресом и номером порта.

ConnectAsync(Socket, IPAddress[], Int32)

Устанавливает подключение к удаленному узлу. Узел задается массивом IP-адресов и номером порта.

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

Устанавливает подключение к удаленному узлу, заданному массивом IP-адресов и номером порта.

ConnectAsync(Socket, String, Int32)

Устанавливает подключение к удаленному узлу. Узел задается именем узла и номером порта.

ConnectAsync(Socket, String, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу, заданному именем узла и номером порта.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

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

Получает данные из указанного сетевого устройства.

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

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного SocketFlags и сохраняет конечную точку и сведения о пакете.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Отправляет данные в подключенный сокет.

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

Отправляет данные в подключенный сокет.

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

Отправляет данные в подключенный сокет.

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

Асинхронно передает данные на конкретный удаленный узел.

Применяется к

Потокобезопасность

В экземпляре безопасно выполнять операции отправки и получения одновременно Socket , но не рекомендуется одновременно выполнять несколько вызовов отправки или приема. В зависимости от реализации базовой платформы это может привести к непреднамеренным чередованием данных для отправки или получения больших или нескольких буферов.

См. также раздел