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


Socket.ReceiveFromAsync Метод

Определение

Перегрузки

Имя Описание
ReceiveFromAsync(SocketAsyncEventArgs)

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

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)

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

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

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

Параметры

e
SocketAsyncEventArgs

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

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

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

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

Исключения

Значение RemoteEndPoint null не может быть пустым.

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

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

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

Комментарии

Метод ReceiveFromAsync используется в основном для получения данных в сокете без подключения. Локальный адрес сокета должен быть известен.

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

Свойство SocketAsyncEventArgs.SocketFlags параметра e предоставляет поставщику служб сокетов окон с дополнительными сведениями о запросе на чтение. Дополнительные сведения об использовании этого параметра см. в разделе System.Net.Sockets.SocketFlags.

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

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

Для сокетов, ориентированных на сообщения, входящие сообщения помещаются в буфер до общего размера буфера. SocketAsyncEventArgs.Offset Свойства SocketAsyncEventArgs.Count определяют место размещения данных в буфере и объем данных.

Для сокетов в стиле потока байт входящие данные помещаются в буфер, пока буфер не заполнен, подключение закрыто или внутренне буферные данные исчерпаны. SocketAsyncEventArgs.Offset Свойства SocketAsyncEventArgs.Count определяют место размещения данных в буфере и объем данных.

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

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

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

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

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

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveFromResult> ^ ReceiveFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveFromResult)

Параметры

buffer
ArraySegment<Byte>

Буфер для полученных данных.

remoteEndPoint
EndPoint

Конечная точка того же типа, что и конечная точка удаленного узла.

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

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

Исключения

remoteEndPoint равно null.

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

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

Вызывающий объект в стеке вызовов не имеет необходимых разрешений.

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

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

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

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

Параметры

buffer
ArraySegment<Byte>

Буфер для полученных данных.

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

Конечная точка того же типа, что и конечная точка удаленного узла.

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

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

Исключения

remoteEndPoint равно null.

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

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

Вызывающий объект в стеке вызовов не имеет необходимых разрешений.

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

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

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

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)

Параметры

buffer
Memory<Byte>

Буфер для полученных данных.

remoteEndPoint
EndPoint

Конечная точка того же типа, что и конечная точка удаленного узла.

cancellationToken
CancellationToken

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

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

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

Исключения

remoteEndPoint равно null.

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

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

Вызывающий объект в стеке вызовов не имеет необходимых разрешений.

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

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

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

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

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

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult> ReceiveFromAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveFromResult>
Public Function ReceiveFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveFromResult)

Параметры

buffer
Memory<Byte>

Буфер для полученных данных.

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

Конечная точка того же типа, что и конечная точка удаленного узла.

cancellationToken
CancellationToken

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

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

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

Исключения

remoteEndPoint равно null.

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

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

Вызывающий объект в стеке вызовов не имеет необходимых разрешений.

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

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

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

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

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

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

Параметры

buffer
Memory<Byte>

Буфер для полученных данных.

socketFlags
SocketFlags

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

receivedAddress
SocketAddress

Экземпляр SocketAddress , который обновляется со значением удаленного однорангового узла при возврате этого метода.

cancellationToken
CancellationToken

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

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

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

Исключения

receivedAddress равно null.

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

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

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

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