Socket.BeginReceive Socket.BeginReceive Socket.BeginReceive Socket.BeginReceive Method

定义

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

重载

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) 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) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

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

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

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

开始从连接的 Socket 中异步接收数据。Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) 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 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 flags, out System.Net.Sockets.SocketError error, 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, flags As SocketFlags, ByRef error As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

参数

buffer
Byte[]

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

offset
Int32 Int32 Int32 Int32

buffer 中存储所接收数据的位置。The location in buffer to store the received data.

size
Int32 Int32 Int32 Int32

要接收的字节数。The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

errorCode
SocketError SocketError SocketError SocketError

一个 SocketError 对象,它存储套接字错误。A SocketError object that stores the socket error.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object 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.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

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.

注解

必须通过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.

备注

如果收到SocketException, 请SocketException.ErrorCode使用属性获取特定的错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后, 请参阅Windows 套接字版本 2 API 错误代码文档, 以获取有关错误的详细说明。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

给定线程启动的所有 i/o 都将在该线程退出时取消。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.

备注

state是用户定义的类的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。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.

备注

为异步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.

另请参阅

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 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 socket_flags, AsyncCallback ^ callback, System::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
Public Function BeginReceive (buffer As Byte(), offset As Integer, size As Integer, socket_flags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

参数

buffer
Byte[]

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

offset
Int32 Int32 Int32 Int32

buffer 参数中存储所接收数据的位置,该位置从零开始计数。The zero-based position in the buffer parameter at which to store the received data.

size
Int32 Int32 Int32 Int32

要接收的字节数。The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object 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.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

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.

示例

下面的代码示例开始从连接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 'StateObject
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 'Listen_Callback

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 'Read_Callback

注解

必须通过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.

备注

如果收到SocketException, 请SocketException.ErrorCode使用属性获取特定的错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后, 请参阅Windows 套接字版本 2 API 错误代码文档, 以获取有关错误的详细说明。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

给定线程启动的所有 i/o 都将在该线程退出时取消。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.

备注

state是用户定义的类的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。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.

备注

为异步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.

另请参阅

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

重要

此 API 不符合 CLS。

开始从连接的 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);
[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

参数

buffers
IList<ArraySegment<Byte>>

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object 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.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

注解

必须通过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.

备注

如果收到SocketException, 请SocketException.ErrorCode使用属性获取特定的错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后, 请参阅Windows 套接字版本 2 API 错误代码文档, 以获取有关错误的详细说明。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

给定线程启动的所有 i/o 都将在该线程退出时取消。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.

备注

state是用户定义的类的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。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.

备注

为异步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.

另请参阅

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

重要

此 API 不符合 CLS。

开始从连接的 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);
[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 *  * AsyncCallback * obj -> IAsyncResult

参数

buffers
IList<ArraySegment<Byte>>

Byte 类型的数组,它是存储接收到的数据的位置。An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

SocketFlags 值的按位组合。A bitwise combination of the SocketFlags values.

errorCode
SocketError SocketError SocketError SocketError

一个 SocketError 对象,它存储套接字错误。A SocketError object that stores the socket error.

callback
AsyncCallback AsyncCallback AsyncCallback AsyncCallback

一个 AsyncCallback 委托,它引用操作完成时要调用的方法。An AsyncCallback delegate that references the method to invoke when the operation is complete.

state
Object Object Object 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.

返回

引用异步读的 IAsyncResultAn IAsyncResult that references the asynchronous read.

异常

尝试访问套接字时出错。An error occurred when attempting to access the socket.

注解

必须通过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.

备注

如果收到SocketException, 请SocketException.ErrorCode使用属性获取特定的错误代码。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 获取此代码后, 请参阅Windows 套接字版本 2 API 错误代码文档, 以获取有关错误的详细说明。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

备注

给定线程启动的所有 i/o 都将在该线程退出时取消。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.

备注

state是用户定义的类的实例化。state is an instantiation of a user-defined class.

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。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.

备注

为异步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.

另请参阅

适用于