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);
}
}
Комментарии
Класс Socket предоставляет широкий набор методов и свойств для сетевых подключений. Класс Socket позволяет выполнять синхронную и асинхронную передачу данных с помощью любого из протоколов связи, перечисленных в перечислении ProtocolType .
Класс Socket следует шаблону именования платформа .NET Framework для асинхронных методов. Например, синхронный метод соответствует асинхронным ReceiveReceiveAsync вариантам.
Используйте следующие методы для режима синхронной работы.
Если вы используете протокол, ориентированный на подключение, например TCP, сервер может прослушивать подключения с помощью Listen метода . Метод Accept обрабатывает все входящие запросы на подключение и возвращает Socket объект , который можно использовать для обмена данными с удаленным узлом. Используйте возвращенный Socket метод для вызова Send метода или Receive . Bind Вызовите метод перед вызовом метода , Listen если вы хотите указать локальный IP-адрес и номер порта. Используйте нулевой номер порта, если вы хотите, чтобы базовый поставщик услуг назначил вам бесплатный порт. Если вы хотите подключиться к прослушивателю узла, вызовите Connect метод . Для передачи данных вызовите Send метод или Receive .
Если вы используете протокол без подключения, например UDP, прослушивать подключения вообще не нужно. Вызовите метод , ReceiveFrom чтобы принять все входящие датаграммы. Используйте метод для отправки SendTo датаграмм на удаленный узел.
Для асинхронной обработки обмена данными используйте следующие методы.
Если вы используете протокол, ориентированный на подключение, например TCP, используйте ConnectAsync для подключения к прослушивателю узла. Используйте SendAsync или ReceiveAsync для асинхронной передачи данных. Входящие запросы на подключение можно обрабатывать с помощью AcceptAsync.
Если вы используете протокол без подключения, например UDP, можно использовать для SendToAsync отправки датаграмм и ReceiveFromAsyncполучения датаграмм.
При выполнении нескольких асинхронных операций с сокетом они не обязательно выполняются в том порядке, в котором они запускаются.
Завершив отправку и получение данных, используйте Shutdown метод , чтобы отключить Socket. После вызова Shutdownвызовите Close метод , чтобы освободить все ресурсы, связанные с Socket.
Класс Socket позволяет настроить с Socket помощью SetSocketOption метода . Получите эти параметры с помощью GetSocketOption метода .
Конструкторы
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) значение всегда |
Методы
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) |
Отправляет файл |
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) |
Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного |
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) |
Отправляет файл |
SendFile(String, Byte[], Byte[], TransmitFileOptions) |
Отправляет файл |
SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions) |
Отправляет файл |
SendFileAsync(String, CancellationToken) |
Отправляет файл |
SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken) |
Отправляет файл |
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 , но не рекомендуется выполнять несколько вызовов отправки или приема одновременно. В зависимости от реализации базовой платформы это может привести к непреднамеренным чередованием данных для отправки или получения больших или нескольких буферов.
См. также раздел
- System.Net
- System.Net.Cache
- System.Net.Security
- SocketAsyncEventArgs
- Сетевое программирование в .NET Framework
- Рекомендации по использованию классов System.Net
- Управление кэшем для сетевых приложений
- Протокол IP версии 6
- Примеры сетевого программирования
- Трассировка сети в .NET Framework
- Безопасность в сетевом программировании
- Улучшения производительности сокетов в версии 3.5
Обратная связь
Отправить и просмотреть отзыв по