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 Framework, .NET Core и .NET 5-6: он Socket закрыт.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
EndReceiveFrom завершает операцию, запущенную BeginReceiveFrom. Необходимо передать IAsyncResult созданный вызов сопоставления BeginReceiveFrom . EndReceiveFrom блокирует вызывающий поток до завершения операции.
Проверьте ipPacketInformation , нужно ли узнать, была ли отправлена диаграмма данных с помощью одноадресной рассылки, многоадресной рассылки или широковещательного адреса.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.