Socket.EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) Метод

Определение

Завершает отложенное асинхронное чтение с определенной конечной точки. Этот метод также показывает больше информации о пакете, чем метод 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 для принятого пакета.

endPoint
EndPoint

Источник EndPoint.

ipPacketInformation
IPPacketInformation

Объект IPAddress и интерфейс полученного пакета.

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

Int32

Количество полученных байтов, если операция успешно выполнена. Возвращает значение 0, если операция завершилась неудачей.

Исключения

asyncResult равно null

-или-

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

Параметр asyncResult не был возвращен вызовом метода BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).

Метод EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation) был ранее вызван для асинхронного чтения.

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

Socket был закрыт.

Комментарии

Если операция не завершена, этот метод блокируется до тех пор, пока он не завершится.

Чтобы выполнить эту операцию синхронно, используйте ReceiveMessageFrom метод.

Проверьте ipPacketInformation , нужно ли узнать, была ли датаграмма отправлена с помощью одноадресного, многоадресного или широковещательного адреса.

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