Listen()函数实现服务器套接字的监听功能。绑定套接字后,服务器进入监听状态。在该函数中将等待请求队列的长度设置为1。一个连接请求到来时,如果队列已有一个连接在等候,那么客户将收到一个WSAECONNREFUSED错误。该函数在调用失败时的处理方法同bind()函数一样。
服务器监听程序清单如下。
//开始监听
retVal = listen(sServer, 1);
if(SOCKET_ERROR == retVal)
{
closesocket(sServer); //关闭套接字
return HandleSocketError("Failed listen()!"); //错误处理
}
//等待客户端的连接
cout << "Server succeeded!" << endl;
cout << "Waiting for new clients..." << endl;