Socket.EndReceiveFrom(IAsyncResult, EndPoint) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Завершает ожидание асинхронного чтения из определенной конечной точки.
public:
int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom(IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) As Integer
Параметры
- asyncResult
- IAsyncResult
Объект, IAsyncResult в который хранятся сведения о состоянии и все пользовательские данные для этой асинхронной операции.
Возвращаемое значение
При успешном выполнении число полученных байтов. Если ошибка, возвращается значение 0.
Исключения
asyncResult равно null.
asyncResult не возвращается вызовом BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) метода.
EndReceiveFrom(IAsyncResult, EndPoint) ранее был вызван для асинхронного чтения.
Только .NET Framework, .NET Core и .NET 5-6: он Socket закрыт.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
EndReceiveFrom завершает операцию, запущенную BeginReceiveFrom. Необходимо передать IAsyncResult созданный вызов сопоставления BeginReceiveFrom .
Метод EndReceiveFrom блокируется до тех пор, пока данные не будут доступны. Если вы используете протокол без подключения, считывает первую заквеченную диаграмму данных, EndReceiveFrom доступную в входящего сетевого буфера. Если вы используете протокол, ориентированный на подключение, метод считывает столько данных, EndReceiveFrom сколько доступно до количества байтов, указанных в size параметре BeginReceiveFrom метода. Если удаленный узел завершает Socket подключение к Shutdown методу, а все доступные данные получены, EndReceiveFrom метод завершится немедленно и возвращает ноль байтов. Чтобы получить полученные данные, вызовите AsyncState метод IAsyncResult объекта и извлеките буфер, содержащийся в результирующем объекте состояния. Чтобы определить исходный узел, извлеките EndPoint и приведите его к объекту IPEndPoint.
IPEndPoint.Address Используйте метод для получения IP-адреса и IPEndPoint.Port метода для получения номера порта.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.