试题详情
简答题Select能处理哪些事件?简述Select的工作原理。
  • Select()可以提供类似windows中的消息驱动机制,实现对I/O的管理。通过调用select函数可以确定一个或多个套接字的状态,判断套接字上是否有数据,或者能否向一个套接字写入数据,或者出现意外。目的是防止应用程序在套接字处于阻塞模式中时,在一次I/O绑定调用(如send或recv)过程中,被逼进入“阻塞”状态;同时防止在套接字处于非阻塞模式中时,产生WSAEWOULDBLOCK错误。除非满足事先用参数规定的条件,否则select函数会再进行I/O操作时阻塞。
    Select工作原理:
    每来一个请求则把s给select,继续等待下一个请求。来数据时select里copy一个套接字,来处理缓冲区数据(这个过程很耗时),因当时的条件所限制select里只能放64个套接字,也就是说并发最大量为64. 一个线程处理接受,另一个进程处理套接字处理数据。
  • 关注下方微信公众号,在线模考后查看

热门试题