Socket.BeginReceive Method

Definition

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected Socket.

Overloads

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected 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(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags flags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % error, 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 flags, out System.Net.Sockets.SocketError error, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
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
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, flags As SocketFlags, ByRef error As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

Parameters

buffer
Byte[]

Массив типа Byte, который является местоположением памяти для полученных данных.An array of type Byte that is the storage location for the received data.

offset
Int32

Место в объекте buffer, выделенное для хранения принимаемых данных.The location in buffer to store the received data.

size
Int32

Количество байтов, которые необходимо получить.The number of bytes to receive.

socketFlagsflags
SocketFlags

Побитовое сочетание значений SocketFlags.A bitwise combination of the SocketFlags values.

errorCodeerror
SocketError

Объект SocketError, содержащий ошибку сокета.A SocketError object that stores the socket error.

callback
AsyncCallback

Делегат AsyncCallback, ссылающийся на метод, вызываемый по завершении данной операции.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Пользовательский объект, содержащий информацию об операции приема.A user-defined object that contains information about the receive operation. Этот объект передается делегату EndReceive(IAsyncResult) по завершении операции.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Returns

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное чтение.An IAsyncResult that references the asynchronous read.

Exceptions

Параметр buffer равен null.buffer is null.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Объект Socket закрыт.Socket has been closed.

Значение параметра offset меньше 0.offset is less than 0.

-или--or- Значение offset превышает длину buffer.offset is greater than the length of buffer.

-или--or- Значение параметра size меньше 0.size is less than 0.

-или--or- Значение size превышает значение, полученное, если отнять от длины buffer значение параметра offset.size is greater than the length of buffer minus the value of the offset parameter.

Remarks

Асинхронная BeginReceive операция должна быть завершена путем вызова метода EndReceive.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Как правило, метод вызывается делегатом callback.Typically, the method is invoked by the callback delegate.

Этот метод не блокируется до завершения операции.This method does not block until the operation is complete. Чтобы заблокировать блокировку до завершения операции, используйте одну из перегрузок метода Receive.To block until the operation is complete, use one of the Receive method overloads.

Чтобы отменить ожидающее BeginReceive, вызовите метод Close.To cancel a pending BeginReceive, call the Close method.

Подробные сведения об использовании асинхронной модели программирования см. в разделе асинхронный вызов синхронных методов.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Note

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Note

Все операции ввода-вывода, инициированные данным потоком, отменяются при выходе из этого потока.All I/O initiated by a given thread is canceled when that thread exits. Незавершенная асинхронная операция может завершиться ошибкой, если поток завершается до завершения операции.A pending asynchronous operation can fail if the thread exits before the operation completes.

Note

state является экземпляром определяемого пользователем класса.state is an instantiation of a user-defined class.

Note

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Note

Контекст выполнения (контекст безопасности, олицетворенный пользователь и вызывающий контекст) кэшируется для асинхронных Socket методов.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. После первого использования определенного контекста (определенного асинхронного метода Socket, определенного экземпляра Socket и конкретного обратного вызова), последующие применения этого контекста приводят к повышению производительности.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

See also

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected 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(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socket_flags, 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 socket_flags, AsyncCallback callback, object state);
member this.BeginReceive : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
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
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socket_flags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

Parameters

buffer
Byte[]

Массив типа Byte, который является местоположением памяти для полученных данных.An array of type Byte that is the storage location for the received data.

offset
Int32

Отсчитываемая с нуля позиция в параметре buffer, начиная с которой хранятся принятые данные.The zero-based position in the buffer parameter at which to store the received data.

size
Int32

Количество байтов, которые необходимо получить.The number of bytes to receive.

socketFlagssocket_flags
SocketFlags

Побитовое сочетание значений SocketFlags.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Делегат AsyncCallback, ссылающийся на метод, вызываемый по завершении данной операции.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Пользовательский объект, содержащий информацию об операции приема.A user-defined object that contains information about the receive operation. Этот объект передается делегату EndReceive(IAsyncResult) по завершении операции.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Returns

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное чтение.An IAsyncResult that references the asynchronous read.

Exceptions

Параметр buffer равен null.buffer is null.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Объект Socket закрыт.Socket has been closed.

Значение параметра offset меньше 0.offset is less than 0.

-или--or- Значение offset превышает длину buffer.offset is greater than the length of buffer.

-или--or- Значение параметра size меньше 0.size is less than 0.

-или--or- Значение size превышает значение, полученное, если отнять от длины buffer значение параметра offset.size is greater than the length of buffer minus the value of the offset parameter.

Examples

В следующем примере кода начинается асинхронный прием данных из подключенной Socket.The following code example begins to asynchronously receive data from a connected Socket.

public ref class StateObject
{
public:
   literal int BUFFER_SIZE = 1024;
   Socket^ workSocket;
   array<Byte>^ buffer;
   StringBuilder^ sb;
   StateObject() : workSocket( nullptr )
   {
      buffer = gcnew array<Byte>(BUFFER_SIZE);
      sb = gcnew StringBuilder;
   }
};
public class StateObject{
     public Socket workSocket = null;
     public const int BUFFER_SIZE = 1024;
     public byte[] buffer = new byte[BUFFER_SIZE];
     public StringBuilder sb = new StringBuilder();
}
Public Class StateObject
   Public workSocket As Socket = Nothing
   Public const BUFFER_SIZE As Integer = 1024
   Public buffer(BUFFER_SIZE) As byte
   Public sb As New StringBuilder()
End Class
static void Listen_Callback( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = safe_cast<Socket^>(ar->AsyncState);
   Socket^ s2 = s->EndAccept( ar );
   StateObject^ so2 = gcnew StateObject;
   so2->workSocket = s2;
   s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
      gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 );
}
public static void Listen_Callback(IAsyncResult ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
                           new AsyncCallback(Async_Send_Receive.Read_Callback), so2);	
}
Public Shared Sub Listen_Callback(ar As IAsyncResult)
   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   Dim s2 As Socket = s.EndAccept(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s2
   s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2)
End Sub

static void Read_Callback( IAsyncResult^ ar )
{
   StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
   Socket^ s = so->workSocket;

   int read = s->EndReceive( ar );

   if ( read > 0 )
   {
      so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) );
      s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None,
         gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so );
   }
   else
   {
      if ( so->sb->Length > 1 )
      {
         //All of the data has been read, so displays it to the console
         String^ strContent = so->sb->ToString();
         Console::WriteLine( String::Format( "Read {0} byte from socket" +
            " data = {1} ", strContent->Length, strContent ) );
      }
      s->Close();
   }
}
public static void Read_Callback(IAsyncResult ar){
    StateObject so = (StateObject) ar.AsyncState;
    Socket s = so.workSocket;

    int read = s.EndReceive(ar);

    if (read > 0) {
            so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
            s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0,
                                     new AsyncCallback(Async_Send_Receive.Read_Callback), so);
    }
    else{
         if (so.sb.Length > 1) {
              //All of the data has been read, so displays it to the console
              string strContent;
              strContent = so.sb.ToString();
              Console.WriteLine(String.Format("Read {0} byte from socket" +
                               "data = {1} ", strContent.Length, strContent));
         }
         s.Close();
    }
}
Public Shared Sub Read_Callback(ar As IAsyncResult)
   Dim so As StateObject = CType(ar.AsyncState, StateObject)
   Dim s As Socket = so.workSocket
   
   Dim read As Integer = s.EndReceive(ar)
   
   If read > 0 Then
      so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read))
      s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so)
   Else
      If so.sb.Length > 1 Then
         'All the data has been read, so displays it to the console
         Dim strContent As String
         strContent = so.sb.ToString()
         Console.WriteLine([String].Format("Read {0} byte from socket" + "data = {1} ", strContent.Length, strContent))
      End If
      s.Close()
   End If
End Sub

Remarks

Асинхронная BeginReceive операция должна быть завершена путем вызова метода EndReceive.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Как правило, метод вызывается делегатом callback.Typically, the method is invoked by the callback delegate.

Этот метод не блокируется до завершения операции.This method does not block until the operation is complete. Чтобы заблокировать блокировку до завершения операции, используйте одну из перегрузок метода Receive.To block until the operation is complete, use one of the Receive method overloads.

Чтобы отменить ожидающее BeginReceive, вызовите метод Close.To cancel a pending BeginReceive, call the Close method.

Подробные сведения об использовании асинхронной модели программирования см. в разделе асинхронный вызов синхронных методов.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Note

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Note

Все операции ввода-вывода, инициированные данным потоком, отменяются при выходе из этого потока.All I/O initiated by a given thread is canceled when that thread exits. Незавершенная асинхронная операция может завершиться ошибкой, если поток завершается до завершения операции.A pending asynchronous operation can fail if the thread exits before the operation completes.

Note

state является экземпляром определяемого пользователем класса.state is an instantiation of a user-defined class.

Note

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Note

Контекст выполнения (контекст безопасности, олицетворенный пользователь и вызывающий контекст) кэшируется для асинхронных Socket методов.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. После первого использования определенного контекста (определенного асинхронного метода Socket, определенного экземпляра Socket и конкретного обратного вызова), последующие применения этого контекста приводят к повышению производительности.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

See also

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Important

This API is not CLS-compliant.

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected 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);
[System.CLSCompliant(false)]
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

Parameters

buffers
IList<ArraySegment<Byte>>

Массив типа Byte, который является местоположением памяти для полученных данных.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Побитовое сочетание значений SocketFlags.A bitwise combination of the SocketFlags values.

errorCode
SocketError

Объект SocketError, содержащий ошибку сокета.A SocketError object that stores the socket error.

callback
AsyncCallback

Делегат AsyncCallback, ссылающийся на метод, вызываемый по завершении данной операции.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Пользовательский объект, содержащий информацию об операции приема.A user-defined object that contains information about the receive operation. Этот объект передается делегату EndReceive(IAsyncResult) по завершении операции.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Returns

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное чтение.An IAsyncResult that references the asynchronous read.

Attributes

Exceptions

Параметр buffer равен null.buffer is null.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Объект Socket закрыт.Socket has been closed.

Remarks

Асинхронная BeginReceive операция должна быть завершена путем вызова метода EndReceive.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Как правило, метод вызывается делегатом callback.Typically, the method is invoked by the callback delegate.

Этот метод не блокируется до завершения операции.This method does not block until the operation is complete. Чтобы заблокировать блокировку до завершения операции, используйте одну из перегрузок метода Receive.To block until the operation is complete, use one of the Receive method overloads.

Чтобы отменить ожидающее BeginReceive, вызовите метод Close.To cancel a pending BeginReceive, call the Close method.

Подробные сведения об использовании асинхронной модели программирования см. в разделе асинхронный вызов синхронных методов.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Note

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Note

Все операции ввода-вывода, инициированные данным потоком, отменяются при выходе из этого потока.All I/O initiated by a given thread is canceled when that thread exits. Незавершенная асинхронная операция может завершиться ошибкой, если поток завершается до завершения операции.A pending asynchronous operation can fail if the thread exits before the operation completes.

Note

state является экземпляром определяемого пользователем класса.state is an instantiation of a user-defined class.

Note

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Note

Контекст выполнения (контекст безопасности, олицетворенный пользователь и вызывающий контекст) кэшируется для асинхронных Socket методов.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. После первого использования определенного контекста (определенного асинхронного метода Socket, определенного экземпляра Socket и конкретного обратного вызова), последующие применения этого контекста приводят к повышению производительности.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

See also

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Important

This API is not CLS-compliant.

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.Begins to asynchronously receive data from a connected 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);
[System.CLSCompliant(false)]
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

Parameters

buffers
IList<ArraySegment<Byte>>

Массив типа Byte, который является местоположением памяти для полученных данных.An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

Побитовое сочетание значений SocketFlags.A bitwise combination of the SocketFlags values.

callback
AsyncCallback

Делегат AsyncCallback, ссылающийся на метод, вызываемый по завершении данной операции.An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object

Пользовательский объект, содержащий информацию об операции приема.A user-defined object that contains information about the receive operation. Этот объект передается делегату EndReceive(IAsyncResult) по завершении операции.This object is passed to the EndReceive(IAsyncResult) delegate when the operation is complete.

Returns

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное чтение.An IAsyncResult that references the asynchronous read.

Attributes

Exceptions

Параметр buffer равен null.buffer is null.

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Объект Socket закрыт.Socket has been closed.

Remarks

Асинхронная BeginReceive операция должна быть завершена путем вызова метода EndReceive.The asynchronous BeginReceive operation must be completed by calling the EndReceive method. Как правило, метод вызывается делегатом callback.Typically, the method is invoked by the callback delegate.

Этот метод не блокируется до завершения операции.This method does not block until the operation is complete. Чтобы заблокировать блокировку до завершения операции, используйте одну из перегрузок метода Receive.To block until the operation is complete, use one of the Receive method overloads.

Чтобы отменить ожидающее BeginReceive, вызовите метод Close.To cancel a pending BeginReceive, call the Close method.

Подробные сведения об использовании асинхронной модели программирования см. в разделе асинхронный вызов синхронных методов.For detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

Note

Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Note

Все операции ввода-вывода, инициированные данным потоком, отменяются при выходе из этого потока.All I/O initiated by a given thread is canceled when that thread exits. Незавершенная асинхронная операция может завершиться ошибкой, если поток завершается до завершения операции.A pending asynchronous operation can fail if the thread exits before the operation completes.

Note

state является экземпляром определяемого пользователем класса.state is an instantiation of a user-defined class.

Note

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Note

Контекст выполнения (контекст безопасности, олицетворенный пользователь и вызывающий контекст) кэшируется для асинхронных Socket методов.The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. После первого использования определенного контекста (определенного асинхронного метода Socket, определенного экземпляра Socket и конкретного обратного вызова), последующие применения этого контекста приводят к повышению производительности.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

See also

Applies to