Socket.BeginReceive Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает асинхронно получать данные из подключенного Socket.
Перегрузки
| Имя | Описание |
|---|---|
| BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Начинает асинхронно получать данные из подключенного Socket. |
| BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Начинает асинхронно получать данные из подключенного Socket. |
| BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Начинает асинхронно получать данные из подключенного Socket. |
| BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Начинает асинхронно получать данные из подключенного Socket. |
BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронно получать данные из подключенного Socket.
public:
IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- offset
- Int32
Отсчитываемая от нуля позиция в параметре buffer , в котором хранятся полученные данные.
- size
- Int32
Число получаемых байтов.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- callback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции получения. Этот объект передается делегату EndReceive(IAsyncResult) после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное чтение.
Исключения
buffer равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Socket был закрыт.
offset меньше 0.
–или–
offset больше длины buffer.
–или–
size меньше 0.
–или–
size больше длины buffer минус значения offset параметра.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginReceive для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginReceive. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginReceive.
Асинхронная BeginReceive операция должна выполняться путем вызова EndReceive метода. Как правило, метод вызывается делегатом AsyncCallback . EndReceive блокирует вызывающий поток до завершения операции.
Socket Закройте ожидающий отменыBeginReceive. Close При вызове метода во время асинхронной операции вызывается обратный BeginReceive вызов метода. Последующий вызов EndReceive метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Все операции ввода-вывода, инициированные заданным потоком, отменяются при выходе из этого потока. Ожидающая асинхронная операция может завершиться ошибкой, если поток завершится до завершения операции.
Замечание
state — это создание экземпляра определяемого пользователем класса.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронно получать данные из подключенного Socket.
public:
IAsyncResult ^ BeginReceive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- offset
- Int32
Расположение для buffer хранения полученных данных.
- size
- Int32
Число получаемых байтов.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- errorCode
- SocketError
SocketError Объект, который хранит ошибку сокета.
- callback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции получения. Этот объект передается делегату EndReceive(IAsyncResult) после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное чтение.
Исключения
buffer равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Socket был закрыт.
offset меньше 0.
–или–
offset больше длины buffer.
–или–
size меньше 0.
–или–
size больше длины buffer минус значения offset параметра.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginReceive для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginReceive. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginReceive.
Асинхронная BeginReceive операция должна выполняться путем вызова EndReceive метода. Как правило, метод вызывается делегатом AsyncCallback . EndReceive блокирует вызывающий поток до завершения операции.
Socket Закройте ожидающий отменыBeginReceive. Close При вызове метода во время асинхронной операции вызывается обратный BeginReceive вызов метода. Последующий вызов EndReceive метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Все операции ввода-вывода, инициированные заданным потоком, отменяются при выходе из этого потока. Ожидающая асинхронная операция может завершиться ошибкой, если поток завершится до завершения операции.
Замечание
state — это создание экземпляра определяемого пользователем класса.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронно получать данные из подключенного Socket.
public:
IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- buffers
- IList<ArraySegment<Byte>>
Массив типа Byte , который является расположением хранилища для полученных данных.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- callback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции получения. Этот объект передается делегату EndReceive(IAsyncResult) после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное чтение.
Исключения
buffers равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Socket был закрыт.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginReceive для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginReceive. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginReceive.
Асинхронная BeginReceive операция должна выполняться путем вызова EndReceive метода. Как правило, метод вызывается делегатом AsyncCallback . EndReceive блокирует вызывающий поток до завершения операции.
Socket Закройте ожидающий отменыBeginReceive. Close При вызове метода во время асинхронной операции вызывается обратный BeginReceive вызов метода. Последующий вызов EndReceive метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Все операции ввода-вывода, инициированные заданным потоком, отменяются при выходе из этого потока. Ожидающая асинхронная операция может завершиться ошибкой, если поток завершится до завершения операции.
Замечание
state — это создание экземпляра определяемого пользователем класса.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронно получать данные из подключенного Socket.
public:
IAsyncResult ^ BeginReceive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginReceive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginReceive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- buffers
- IList<ArraySegment<Byte>>
Массив типа Byte , который является расположением хранилища для полученных данных.
- socketFlags
- SocketFlags
Побитовое сочетание значений SocketFlags .
- errorCode
- SocketError
SocketError Объект, который хранит ошибку сокета.
- callback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции получения. Этот объект передается делегату EndReceive(IAsyncResult) после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное чтение.
Исключения
buffers равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Socket был закрыт.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginReceive для получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов будет выполняться во время вызова BeginReceive. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginReceive.
Асинхронная BeginReceive операция должна выполняться путем вызова EndReceive метода. Как правило, метод вызывается делегатом AsyncCallback . EndReceive блокирует вызывающий поток до завершения операции.
Socket Закройте ожидающий отменыBeginReceive. Close При вызове метода во время асинхронной операции вызывается обратный BeginReceive вызов метода. Последующий вызов EndReceive метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Все операции ввода-вывода, инициированные заданным потоком, отменяются при выходе из этого потока. Ожидающая асинхронная операция может завершиться ошибкой, если поток завершится до завершения операции.
Замечание
state — это создание экземпляра определяемого пользователем класса.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- EndAccept(IAsyncResult)
- AsyncCallback
- Connect(EndPoint)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера