Socket.EndReceiveMessageFrom Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает отложенное асинхронное чтение с определенной конечной точки. Этот метод также показывает больше информации о пакете, чем метод EndReceiveFrom(IAsyncResult, EndPoint).
public:
int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
Параметры
- asyncResult
- IAsyncResult
Объект IAsyncResult, в котором хранятся сведения о состоянии и любые данные, определенные пользователем, для этой асинхронной операции.
- socketFlags
- SocketFlags
Поразрядное сочетание значений перечисления SocketFlags для принятого пакета.
- ipPacketInformation
- IPPacketInformation
Объект IPAddress и интерфейс полученного пакета.
Возвращаемое значение
Количество полученных байтов, если операция успешно выполнена. Возвращает значение 0, если операция завершилась неудачей.
Исключения
Параметр asyncResult
не был возвращен вызовом метода BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).
Метод EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) был ранее вызван для асинхронного чтения.
Произошла ошибка при попытке доступа к сокету.
-или-
Только .NET 7 и более поздних версий Socket : объект был закрыт.
только платформа .NET Framework, .NET Core и .NET 5–6: Socket объект закрыт.
Комментарии
Важно!
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin*
и End*
) для разработки новых приложений. Вместо этого используйте эквиваленты на Task
основе .
EndReceiveFromзавершает операцию, запущенную .BeginReceiveFrom Необходимо передать объект , IAsyncResult созданный соответствующим BeginReceiveFrom вызовом. EndReceiveFrom блокирует вызывающий поток до завершения операции.
Проверьте ipPacketInformation
, нужно ли знать, была ли датаграмма отправлена по адресу одноадресной, многоадресной или широковещательной рассылки.
Примечание
Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки.