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