黑马程序员技术交流社区

标题: 套接字聊天室 [打印本页]

作者: 顾磊磊    时间: 2013-6-12 23:43
标题: 套接字聊天室
本帖最后由 顾磊磊 于 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();
复制代码

作者: 无__畏    时间: 2013-6-13 00:30
个人理解:防止同时出现多个请求,资源分配不当而照成线程死锁
作者: 许庭洲    时间: 2013-6-13 07:03
socketWatch.Listen(10);//设置监听队列的长度就是当启动服务器的时候 一次可以处理的最大数量(服务器端监听客户端连接的线程)是十个。
作者: 江湖一浪人    时间: 2013-6-13 11:47
       这意思是,当在服务端设置创建一个套接字,并绑定之后并作为监听客户端的请求时,也许在某个时刻有很多客户端都向服务端发送请求,但这个套接字在特定的时间只能处理一个请求,于是它便将所接收到的请求在后台让它们排成一个队列以便一个个的处理,socketWatch.Listen(10)这里面的参数是设置请求的个数,就是说队列中最多只有10个请求,这就限制了请求量。如果不设置可能进程在共享资源时导致进程死锁。以上就是我的理解。谢谢!!!
作者: 关关雎鸠    时间: 2013-6-13 13:43
举个例子:宿舍大妈负责我们的宿舍,谁来宿舍了都要经过她的允许吧?然后你要填写登记册吧,找某个人等等。然后大妈要一个一个的看,看是不是有你要找的这个人……找呀找,累死我了啊!!!居然这么多人来,你们还要不要我休息啊!

没办法,大妈说我累了,登记的人太多了,每天限制10个人来,多的下次再来。嘿嘿~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2