Socket.Accept 方法

定义

为新建连接创建新的 Socket

public System.Net.Sockets.Socket Accept();

返回

新建连接的 Socket

例外

尝试访问套接字时出错。

正在接受的套接字不会侦听连接。 在调用 Bind(EndPoint) 之前必须调用 Listen(Int32)Accept()

示例

下面的代码示例接受简单的 Socket 连接。

protected void AcceptMethod(Socket listeningSocket)
{
    Socket mySocket = listeningSocket.Accept();
}

注解

Accept 从侦听套接字的连接请求队列同步提取第一个挂起的连接请求,然后创建并返回新的 Socket。 不能使用此返回的 Socket 来接受来自连接队列的任何其他连接。 但是,可以调用 RemoteEndPoint 返回 Socket 的 的 方法来标识远程主机的网络地址和端口号。

在阻止模式下, Accept 将阻止,直到传入的连接尝试排队。 接受连接后,原始 Socket 连接将继续排队传入连接请求,直到关闭它。

如果使用非阻塞 Socket性 调用此方法,并且没有连接请求排队, Accept 则会 SocketException引发 。 如果收到 , SocketException请使用 SocketException.ErrorCode 属性获取特定的错误代码。 获取此代码后,请参阅 Windows 套接字版本 2 API 错误代码 文档,获取错误的详细说明。

备注

在调用 Accept 方法之前,必须先调用 Listen 方法来侦听传入连接请求并排队。

备注

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

另请参阅