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


Socket.SendAsync Метод

Определение

Перегрузки

Имя Описание
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

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

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

SendAsync(ArraySegment<Byte>, SocketFlags)

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

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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

SendAsync(IList<ArraySegment<Byte>>)

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

SendAsync(ArraySegment<Byte>)

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

SendAsync(SocketAsyncEventArgs)

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

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

buffer
ReadOnlyMemory<Byte>

Буфер для отправки данных.

cancellationToken
CancellationToken

Маркер отмены, который можно использовать для отмены асинхронной операции.

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

Маркер отмены был отменен. Это исключение хранится в возвращаемой задаче.

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

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

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Параметры

buffers
IList<ArraySegment<Byte>>

Список буферов для отправки данных.

socketFlags
SocketFlags

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

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

buffers равно null.

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

Комментарии

Этот метод сохраняет в задаче все исключения без использования, которые может вызывать синхронный аналог метода. Если исключение хранится в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему выбрасываются синхронно. Сведения о сохраненных исключениях см. в исключениях, создаваемых Send(IList<ArraySegment<Byte>>, SocketFlags).

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

SendAsync(ArraySegment<Byte>, SocketFlags)

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)

Параметры

buffer
ArraySegment<Byte>

Буфер для отправки данных.

socketFlags
SocketFlags

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

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

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

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Параметры

buffer
ReadOnlyMemory<Byte>

Буфер для отправки данных.

socketFlags
SocketFlags

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

cancellationToken
CancellationToken

Маркер отмены, который можно использовать для отмены асинхронной операции.

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

Маркер отмены был отменен. Это исключение хранится в возвращаемой задаче.

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

SendAsync(IList<ArraySegment<Byte>>)

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Параметры

buffers
IList<ArraySegment<Byte>>

Список буферов для отправки данных.

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

buffers равно null.

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

Комментарии

Этот метод сохраняет в задаче все исключения без использования, которые может вызывать синхронный аналог метода. Если исключение хранится в возвращаемой задаче, это исключение будет создано при ожидании задачи. Исключения использования, такие как ArgumentException, по-прежнему выбрасываются синхронно. Сведения о сохраненных исключениях см. в исключениях, создаваемых Send(IList<ArraySegment<Byte>>).

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

SendAsync(ArraySegment<Byte>)

Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs
Исходный код:
Socket.Tasks.cs

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

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer);
member this.SendAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Параметры

buffer
ArraySegment<Byte>

Буфер для отправки данных.

Возвращаемое значение

Асинхронная задача, которая завершается числом отправленных байтов.

Исключения

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

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

SendAsync(SocketAsyncEventArgs)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

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

public:
 bool SendAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendAsync (e As SocketAsyncEventArgs) As Boolean

Параметры

e
SocketAsyncEventArgs

Объект SocketAsyncEventArgs , используемый для этой асинхронной операции сокета.

Возвращаемое значение

Значение , если операция ввода-вывода ожидается. Событие Completed параметра e будет возникать после завершения операции.

false Если операция ввода-вывода завершилась синхронно. В этом случае событие параметра Completed не будет вызываться, и e объект, переданный в качестве параметра, e может быть рассмотрен сразу после вызова метода, чтобы получить результат операции.

Исключения

BufferList Свойства Buffer параметра e должны ссылаться на допустимые буферы. Одно или другое из этих свойств может быть задано, но не одновременно.

Операция сокета уже выполнялась с помощью объекта, указанного SocketAsyncEventArgs в параметре e .

Он Socket был закрыт.

Он Socket еще не подключен или не был получен с помощью Accept()метода , AcceptAsync(SocketAsyncEventArgs)или BeginAcceptметода.

Комментарии

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

Метод SendAsync запускает асинхронную операцию отправки удаленному узлу, установленному в методе Accept, , AcceptAsync, ConnectBeginAcceptBeginConnectили ConnectAsync методе.

Для успешного System.Net.Sockets.SocketAsyncEventArgs вызова этого метода требуются следующие свойства и события объекта:

Вызывающий SocketAsyncEventArgs.UserToken объект может задать свойство любому объекту пользовательского SendAsync состояния, требуемому перед вызовом метода, чтобы информация была извлечена в методе обратного вызова. Если обратный вызов требует больше информации, чем один объект, можно создать небольшой класс для хранения других необходимых сведений о состоянии в качестве членов.

Метод SendAsync создает исключение, если вы не вызываете первый вызов Accept, AcceptAsync, , BeginAcceptBeginConnectConnectили .ConnectAsync

SendAsync Вызов метода дает возможность отправлять данные в отдельном потоке выполнения.

Для сокетов, ориентированных на сообщения, не превышают максимальный размер сообщения поставщика служб сокетов Windows. Если данные слишком долго передаются через базовый поставщик услуг, данные не передаются, а SendAsync метод создает SocketException исключение с SocketAsyncEventArgs.SocketError набором в собственный код ошибки Winsock WSAEMSGSIZE (10040).

Обратите внимание, что успешное завершение SendAsync метода не указывает, что данные были успешно доставлены.

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

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