Socket.BeginReceive Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Начинает выполнение асинхронного приема данных с подключенного объекта Socket.
Перегрузки
BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Начинает выполнение асинхронного приема данных с подключенного объекта Socket. |
BeginReceive(Byte[], Int32, Int32, SocketFlags, 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, SocketError, AsyncCallback, Object)
- Исходный код:
- 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
основе .
Вы можете передать обратный вызов, реализующий AsyncCallback для BeginReceive , чтобы получать уведомления о завершении операции. Обратите внимание, что если базовый сетевой стек выполняет операцию синхронно, обратный вызов будет выполняться во время вызова 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, AsyncCallback, Object)
- Исходный код:
- 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
основе .
Вы можете передать обратный вызов, реализующий AsyncCallback для BeginReceive , чтобы получать уведомления о завершении операции. Обратите внимание, что если базовый сетевой стек выполняет операцию синхронно, обратный вызов будет выполняться во время вызова 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.
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, который ссылается на асинхронное чтение.
Исключения
buffer
имеет значение null
.
платформа .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Объект Socket закрыт.
Комментарии
Важно!
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin*
и End*
) для новой разработки. Вместо этого используйте эквиваленты на Task
основе .
Вы можете передать обратный вызов, который реализует AsyncCallback для BeginReceive получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек выполняет операцию синхронно, обратный вызов будет выполняться во время вызова 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.
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, который ссылается на асинхронное чтение.
Исключения
buffer
имеет значение null
.
платформа .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Объект Socket закрыт.
Комментарии
Важно!
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin*
и End*
) для новой разработки. Вместо этого используйте эквиваленты на Task
основе .
Вы можете передать обратный вызов, который реализует AsyncCallback для BeginReceive получения уведомлений о завершении операции. Обратите внимание, что если базовый сетевой стек выполняет операцию синхронно, обратный вызов будет выполняться во время вызова 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)
- Маршалинг делегата как метода обратного вызова
- Примеры асинхронных сокетов клиента
- Пример асинхронного сокета сервера