A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 顾磊磊 中级黑马   /  2013-6-12 23:43  /  1585 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 顾磊磊 于 2013-6-13 22:27 编辑

套接字聊天室中,设置接听队列有什么意义,不设置有什么影响?
下面是部分代码:
  1. Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  2.             IPAddress address = IPAddress.Parse("192.168.0.9");
  3.             IPEndPoint endpoint = new IPEndPoint(address, 50001);
  4.             socketWatch.Bind(endpoint);
  5.             //设置监听队列的长度
  6.             socketWatch.Listen(10);
  7.             Socket sokConnection = socketWatch.Accept();
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

4 个回复

倒序浏览
个人理解:防止同时出现多个请求,资源分配不当而照成线程死锁
回复 使用道具 举报 1 0
socketWatch.Listen(10);//设置监听队列的长度就是当启动服务器的时候 一次可以处理的最大数量(服务器端监听客户端连接的线程)是十个。
回复 使用道具 举报
       这意思是,当在服务端设置创建一个套接字,并绑定之后并作为监听客户端的请求时,也许在某个时刻有很多客户端都向服务端发送请求,但这个套接字在特定的时间只能处理一个请求,于是它便将所接收到的请求在后台让它们排成一个队列以便一个个的处理,socketWatch.Listen(10)这里面的参数是设置请求的个数,就是说队列中最多只有10个请求,这就限制了请求量。如果不设置可能进程在共享资源时导致进程死锁。以上就是我的理解。谢谢!!!

评分

参与人数 1黑马币 +1 收起 理由
顾磊磊 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
举个例子:宿舍大妈负责我们的宿舍,谁来宿舍了都要经过她的允许吧?然后你要填写登记册吧,找某个人等等。然后大妈要一个一个的看,看是不是有你要找的这个人……找呀找,累死我了啊!!!居然这么多人来,你们还要不要我休息啊!

没办法,大妈说我累了,登记的人太多了,每天限制10个人来,多的下次再来。嘿嘿~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马