通过


Socket.BeginAccept 方法

定义

开始异步操作以接受传入的连接尝试。

重载

名称 说明
BeginAccept(AsyncCallback, Object)

开始异步操作以接受传入的连接尝试。

BeginAccept(Int32, AsyncCallback, Object)

开始异步操作以接受传入的连接尝试,并接收客户端应用程序发送的第一个数据块。

BeginAccept(Socket, Int32, AsyncCallback, Object)

开始异步操作以接受来自指定套接字的传入连接尝试,并接收客户端应用程序发送的第一个数据块。

BeginAccept(AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

开始异步操作以接受传入的连接尝试。

public:
 IAsyncResult ^ BeginAccept(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept(AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept(AsyncCallback callback, object state);
member this.BeginAccept : AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (callback As AsyncCallback, state As Object) As IAsyncResult

参数

callback
AsyncCallback

委托 AsyncCallback

state
Object

包含此请求的状态信息的对象。

返回

引用异步Socket创建的一个IAsyncResult

例外

对象 Socket 已关闭。

接受套接字未侦听连接。 必须在呼叫之前和Bind(EndPoint)Listen(Int32)呼叫之前进行呼叫BeginAccept(AsyncCallback, Object)

-或-

接受的套接字已绑定。

仅 .NET Framework 和 .NET 5 及更早版本:尝试访问套接字时出错。

注解

重要

这是一个兼容性 API。 不建议使用 APMBegin*End*) 方法进行新开发。 请改用基于 -- 的 Task等效项。

面向连接的协议可以使用 BeginAccept 该方法开始接受传入连接尝试。 在调用 BeginAccept 该方法之前,必须调用 Listen 该方法来侦听和排队传入连接请求。

可以传递实现 AsyncCallbackBeginAccept 回调,以获取有关完成接受操作的通知。 请注意,如果基础网络堆栈同步完成操作,则回调可能会在调用 BeginAccept期间内联执行。 在这种情况下, CompletedSynchronously 返回的属性 IAsyncResult 将设置为 true 指示该方法同步完成。 使用属性AsyncStateIAsyncResult获取传递给BeginAccept该方法的状态对象。

BeginAccept该操作必须通过调用EndAccept方法来完成。 通常,由提供的 AsyncCallback 委托调用该方法。 EndAccept 将阻止调用线程,直到作完成。

若要取消对方法的挂起调用BeginAccept,请关闭 。Socket Close当异步作正在进行时调用该方法时,将调用提供给该方法的BeginAccept回调。 对方法的后续调用 EndAccept 将引发 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 上)以指示作已取消。

注释

可以使用 RemoteEndPoint 返回 Socket 的属性来标识远程主机的网络地址和端口号。

注释

如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。

注释

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

注释

为异步 Socket 方法缓存执行上下文(安全上下文、模拟用户和调用上下文)。 首次使用特定上下文(特定的异步 Socket 方法、特定 Socket 实例和特定回调)后,该上下文的后续使用将看到性能改进。

另请参阅

适用于

BeginAccept(Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

开始异步操作以接受传入的连接尝试,并接收客户端应用程序发送的第一个数据块。

public:
 IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept(int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept(int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

参数

receiveSize
Int32

要从发送方接受的字节数。

callback
AsyncCallback

委托 AsyncCallback

state
Object

包含此请求的状态信息的对象。

返回

引用异步Socket创建的一个IAsyncResult

例外

对象 Socket 已关闭。

接受套接字未侦听连接。 必须在呼叫之前和Bind(EndPoint)Listen(Int32)呼叫之前进行呼叫BeginAccept(AsyncCallback, Object)

-或-

接受的套接字已绑定。

receiveSize 小于 0。

仅 .NET Framework 和 .NET 5 及更早版本:尝试访问套接字时出错。

注解

重要

这是一个兼容性 API。 不建议使用 APMBegin*End*) 方法进行新开发。 请改用基于 -- 的 Task等效项。

面向连接的协议可以使用 BeginAccept 该方法开始接受传入连接尝试。 在调用 BeginAccept 该方法之前,必须调用 Listen 该方法来侦听和排队传入连接请求。

可以传递实现 AsyncCallbackBeginAccept 回调,以获取有关完成接受操作的通知。 请注意,如果基础网络堆栈同步完成操作,则回调可能会在调用 BeginAccept期间内联执行。 在这种情况下, CompletedSynchronously 返回的属性 IAsyncResult 将设置为 true 指示该方法同步完成。 使用属性AsyncStateIAsyncResult获取传递给BeginAccept该方法的状态对象。

BeginAccept该操作必须通过调用EndAccept方法来完成。 通常,由提供的 AsyncCallback 委托调用该方法。 EndAccept 将阻止调用线程,直到作完成。

若要取消对方法的挂起调用BeginAccept,请关闭 。Socket Close当异步作正在进行时调用该方法时,将调用提供给该方法的BeginAccept回调。 对方法的后续调用 EndAccept 将引发 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 上)以指示作已取消。

注释

可以使用 RemoteEndPoint 返回 Socket 的属性来标识远程主机的网络地址和端口号。

注释

如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。

注释

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

注释

为异步 Socket 方法缓存执行上下文(安全上下文、模拟用户和调用上下文)。 首次使用特定上下文(特定的异步 Socket 方法、特定 Socket 实例和特定回调)后,该上下文的后续使用将看到性能改进。

另请参阅

适用于

BeginAccept(Socket, Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

开始异步操作以接受来自指定套接字的传入连接尝试,并接收客户端应用程序发送的第一个数据块。

public:
 IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept(System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept(System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

参数

acceptSocket
Socket

接受 Socket 的对象。 此值可能为 null.

receiveSize
Int32

要接收的最大字节数。

callback
AsyncCallback

委托 AsyncCallback

state
Object

包含此请求的状态信息的对象。

返回

引用 IAsyncResult 异步 Socket 对象创建的对象。

例外

对象 Socket 已关闭。

接受套接字未侦听连接。 必须在呼叫之前和Bind(EndPoint)Listen(Int32)呼叫之前进行呼叫BeginAccept(AsyncCallback, Object)

-或-

接受的套接字已绑定。

receiveSize 小于 0。

仅 .NET Framework 和 .NET 5 及更早版本:尝试访问套接字时出错。

注解

重要

这是一个兼容性 API。 不建议使用 APMBegin*End*) 方法进行新开发。 请改用基于 -- 的 Task等效项。

面向连接的协议可以使用 BeginAccept 该方法开始接受传入连接尝试。 生成的接受操作由返回 IAsyncResult 的操作表示,即使它可能同步完成。 在调用 BeginAccept 该方法之前,必须调用 Listen 该方法来侦听和排队传入连接请求。

可以传递实现 AsyncCallbackBeginAccept 回调,以获取有关完成接受操作的通知。 请注意,如果基础网络堆栈同步完成操作,则回调可能会在调用 BeginAccept期间内联执行。 在这种情况下, CompletedSynchronously 返回的属性 IAsyncResult 将设置为 true 指示该方法同步完成。 使用属性AsyncStateIAsyncResult获取传递给BeginAccept该方法的状态对象。

BeginAccept该操作必须通过调用EndAccept方法来完成。 通常,由提供的 AsyncCallback 委托调用该方法。 EndAccept 将阻止调用线程,直到作完成。

若要取消对方法的挂起调用BeginAccept,请关闭 。Socket Close当异步作正在进行时调用该方法时,将调用提供给该方法的BeginAccept回调。 对方法的后续调用 EndAccept 将引发 ObjectDisposedException (在 .NET 7 之前)或 SocketException (在 .NET 7+ 上)以指示作已取消。

注释

可以使用 RemoteEndPoint 返回 Socket 的属性来标识远程主机的网络地址和端口号。

注释

如果收到, SocketException请使用该 SocketException.ErrorCode 属性获取特定的错误代码。

注释

在应用程序中启用网络跟踪时,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

注释

为异步 Socket 方法缓存执行上下文(安全上下文、模拟用户和调用上下文)。 首次使用特定上下文(特定的异步 Socket 方法、特定 Socket 实例和特定回调)后,该上下文的后续使用将看到性能改进。

另请参阅

适用于