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) значение всегда |
Методы
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