socket编程中的listen是监听来自客户端的连接请求,第二个参数限定了这个请求的最大值。

如果超过了这个最大值,那么其他的客户端再发连接请求的话会返回一个错误码。那我就不明白QQ是怎么克服这一点的?用到了什么技术?或者这其中有什么其他的“内涵”我不清楚,请各位高手们指点。(复制党省省你们自己的时间。引用文请上链接,谢谢)

函数原型是int PASCAL listen(SOCKET,int);
其中第二参数的含义楼主理解错误,并非最大可连接数,而是最多可缓存的监听个数。
这里listen()维护一个队列,每一个请求监听,但尚未被accept()的请求都放在队列里,而一旦监听被accept()之后,该监听就从队列移走了。

这样说,明白了吗:)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-24
qq的服务器多大,你的多大……人家的cpu是什么,你的是什么……人家几台服务器一起运行,你的是个人电脑……这样对比就知道了
相似回答