Socket.Listen 方法

Socket 置于侦听状态。

**命名空间:**System.Net.Sockets
**程序集:**System(在 system.dll 中)

语法

声明
Public Sub Listen ( _
    backlog As Integer _
)
用法
Dim instance As Socket
Dim backlog As Integer

instance.Listen(backlog)
public void Listen (
    int backlog
)
public:
void Listen (
    int backlog
)
public void Listen (
    int backlog
)
public function Listen (
    backlog : int
)

参数

  • backlog
    挂起连接队列的最大长度。

异常

异常类型 条件

SocketException

试图访问套接字时发生错误。有关更多信息,请参见备注部分。

ObjectDisposedException

Socket 已关闭。

备注

Listen 可以让一个面向连接的 Socket 侦听传入的连接尝试。backlog 参数指定队列中最多可容纳的等待接受的传入连接数。若要确定可指定的最大连接数,请检索 MaxConnections 值。Listen 不会阻止。

如果收到 SocketException,可以使用 ErrorCode 属性获取特定的错误代码。获取此代码后,您可以参考 MSDN Library 中的 Windows Sockets 第 2 版 API 错误代码文档,获取有关该错误的详细说明。可使用 AcceptBeginAccept 来接受来自队列的连接。

提示

在调用 Listen 之前,必须首先调用 Bind 方法,否则 Listen 将引发 SocketException

提示

当在应用程序中启用网络跟踪功能后,此成员将输出跟踪信息。有关更多信息,请参见 网络跟踪

提示

根据操作系统的不同,backlog 参数被限制为不同的值。您可以指定更大的值,但 backlog 将受操作系统的限制。

示例

下面的代码示例使用 Socket 来侦听传入的连接。

   ' create the socket
   Dim listenSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
   
   ' bind the listening socket to the port
   Dim hostIP As IPAddress = Dns.Resolve(IPAddress.Any.ToString()).AddressList(0)
   Dim ep As New IPEndPoint(hostIP, port)
   listenSocket.Bind(ep)
   
   ' start listening
   listenSocket.Listen(backlog)
End Sub 'CreateAndListen
    // create the socket
    Socket listenSocket = new Socket(AddressFamily.InterNetwork, 
                                     SocketType.Stream,
                                     ProtocolType.Tcp);

    // bind the listening socket to the port
IPAddress hostIP = (Dns.Resolve(IPAddress.Any.ToString())).AddressList[0];
    IPEndPoint ep = new IPEndPoint(hostIP, port);
    listenSocket.Bind(ep); 

    // start listening
    listenSocket.Listen(backlog);
// create the socket
Socket^ listenSocket = gcnew Socket( AddressFamily::InterNetwork,
   SocketType::Stream,
   ProtocolType::Tcp );

// bind the listening socket to the port
IPAddress^ hostIP = ( Dns::Resolve( IPAddress::Any->ToString() ) )->AddressList[ 0 ];
IPEndPoint^ ep = gcnew IPEndPoint( hostIP,port );
listenSocket->Bind( ep );

// start listening
listenSocket->Listen( backlog );

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Socket 类
Socket 成员
System.Net.Sockets 命名空间
MaxConnections
Accept
Bind