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
Параметры
Объект SocketAsyncEventArgs , используемый для этой асинхронной операции сокета.
Возвращаемое значение
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)
Параметры
- 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)
Параметры
- 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)
Параметры
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags , которые будут использоваться при получении данных.
- receivedAddress
- SocketAddress
Экземпляр SocketAddress , который обновляется со значением удаленного однорангового узла при возврате этого метода.
- cancellationToken
- CancellationToken
Маркер отмены, который можно использовать для сигнала об асинхронной операции, следует отменить.
Возвращаемое значение
Асинхронная задача, которая завершается с SocketReceiveFromResult числом полученных байтов и конечной точкой узла отправки.
Исключения
receivedAddress равно null.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Маркер отмены был отменен. Это исключение хранится в возвращаемой задаче.