listen函数的第二个参数int backlog可以为0啊为什么?该如何处理

listen函数的第二个参数int backlog可以为0啊,为什么?
我用listen(sock,0)监听,accept也能得到链接什么都没有。
可是,msdn的解释似乎backlog得是一个正数。这是为什么呢? 难道backlog参数根本没用?

listen
The listen function places a socket in a state in which it is listening for an incoming connection.
C/C++ code

int listen(
  SOCKET s,
  int backlog
);

Parameters
s 
[in] Descriptor identifying a bound, unconnected socket. 
backlog 
[in] Maximum length of the queue of pending connections. If set to SOMAXCONN, the underlying service provider responsible for socket s will set the backlog to a maximum reasonable value. There is no standard provision to obtain the actual backlog value. 


------解决方案--------------------
backlog是连接请求队列的最大长度。 
1.在WinSock1.1中最大值5。如果backlog小于1,则backlog被置喂1;若backlog大于SOMAXCONN(定义在winsock.h中,值为5),则backlog被置为SOMAXCONN。 
2.在WinSock2中,没有制定具体值,它由服务提供者决定 
3.有时候backlog设置很小,这时我们接进多少台机器都没问题是因为服务器机器处理速度很快队列来不及填满就处理完了,而且在同一个时刻到来的连接还是很少的