Socket.BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) Метод

Определение

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

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

buffer
Byte[]

Массив типа Byte, который является местоположением памяти для полученных данных.

offset
Int32

Отсчитываемая с нуля позиция в параметре buffer, начиная с которой хранятся данные.

size
Int32

Количество байтов, которые необходимо получить.

socketFlags
SocketFlags

Поразрядное сочетание значений SocketFlags.

remoteEP
EndPoint

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

callback
AsyncCallback

Делегат AsyncCallback.

state
Object

Объект, содержащий сведения о состоянии для этого запроса.

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

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное чтение.

Исключения

buffer имеет значение null.

-или-

remoteEP имеет значение null.

платформа .NET Framework и .net 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.

Значение параметраoffset меньше 0.

-или-

Значение offset превышает длину buffer.

-или-

Значение параметраsize меньше 0.

-или-

Значениеsize превышает значение, полученное, если отнять от длины buffer значение параметра offset .

Socket был закрыт.

Комментарии

Асинхронная операция получения должна быть завершена путем вызова EndReceiveMessageFrom метода. Как правило, метод вызывается asyncCallback делегатом.

Этот метод не блокируется до завершения операции. Для блокировки до завершения операции используйте ReceiveMessageFrom метод.

Чтобы отменить ожидание BeginReceiveMessageFrom , вызовите Close метод.

Подробные сведения об использовании асинхронной модели программирования см. в разделе асинхронное вызов синхронных методов

Этот метод считывает данные в buffer параметр и захватывает конечную точку удаленного узла, из которой отправляются данные, а также сведения о полученном пакете. Сведения о том, как получить эту конечную точку, см. в разделе EndReceiveFrom . Этот метод наиболее удобен, если предполагается асинхронное получение датаграмм без подключения из неизвестного узла или с нескольких узлов.

Примечание

Если вы получаете SocketException , используйте SocketException.ErrorCode свойство для получения конкретного кода ошибки. после получения этого кода ознакомьтесь с подробным описанием ошибки в документации по коду ошибки API Windows sockets версии 2 .

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. дополнительные сведения см. в разделе сетевая трассировка в платформа .NET Framework.

Примечание

Контекст выполнения (контекст безопасности, олицетворенный пользователь и вызывающий контекст) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (определенного асинхронного Socket метода, конкретного Socket экземпляра и конкретного обратного вызова) при последующих применениях этого контекста будет отображаться улучшение производительности.

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