关于网友提出的“ 一个服务端accept的时候,如果有多个客户端同时connect,会怎样处理?”问题疑问,本网通过在网上对“ 一个服务端accept的时候,如果有多个客户端同时connect,会怎样处理?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 一个服务端accept的时候,如果有多个客户端同时connect,会怎样处理?
描述:本帖最后由 oyljerry 于 2012-01-11 17:30:38 编辑
机制:阻塞模式下,服务端一个套接字组 循环accept,用完一个套接字,判断套接字是否可用,再accept下一个
如果有多个客户端同时connect
这个服务端的套接字,会对应多个客户端套接字吗,还是accept一个再accept下一个
解决方案1: lock;
accept
unlock;
accept被互斥对象或临界对象夹在中间,每次获得的socket可以一次性处理,或放入socket对象池中,用异步处理
解决方案2: 一个接一个处理,accept成功后,自己决定处理结果
解决方案3: 一个个处理,socket自己就有 一个缓存队列,你可以设置大小,当有链接上来来不及处理时,入队。处理完上一个后从队列中取下一个
解决方案4: 一个一个accept。
解决方案5: 连接请求会入队,accept依次处理。如果超出设置的最大可接受的连接数,就放弃。
解决方案6: 每个连接都要accept一下
解决方案7: listen的第二个参数,accept一个一个处理,
解决方案8: 一个个处理.
以上介绍了“ 一个服务端accept的时候,如果有多个客户端同时connect,会怎样处理?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2972280.html