Socket.Accept 方法

定义

为新建连接创建新的 Socket

public:
 System::Net::Sockets::Socket ^ Accept();
public System.Net.Sockets.Socket Accept ();
member this.Accept : unit -> System.Net.Sockets.Socket
Public Function Accept () As Socket

返回

新建连接的 Socket

例外

尝试访问套接字时出错。

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

示例

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

protected:
   void AcceptMethod( Socket^ listeningSocket )
   {
      Socket^ mySocket = listeningSocket->Accept();
   }
protected void AcceptMethod(Socket listeningSocket)
{
    Socket mySocket = listeningSocket.Accept();
}
   Protected Sub AcceptMethod(listeningSocket As Socket)
       

Dim mySocket As Socket = listeningSocket.Accept()
       
   End Sub

注解

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

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

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

注意

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

备注

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

适用于

另请参阅