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

新建连接的 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 则引发 a SocketException。 如果收到, SocketException请使用 SocketException.ErrorCode 该属性获取特定的错误代码。 获取此代码后,请参阅 Windows Sockets 版本 2 API 错误代码文档,获取错误的详细说明。

备注

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

备注

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

适用于

另请参阅