Socket.Accept 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
为新建连接创建新的 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 错误代码 文档,获取错误的详细说明。
备注
当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪。