当前位置: 首页 > news >正文

建设项目环境影响网站河南百度推广公司

建设项目环境影响网站,河南百度推广公司,wordpress首页文章摘要,汽油价格92号最新调整时间讲到epoll,就必须了解Socket,上篇博客写了Socket的基本使用方法,步骤主要为创建一个socketsocket是进程之间通信的,那么进程通信如何找到这个socket呢?当然是端口号,所以socket就要和端口号进行绑定&#x…

讲到epoll,就必须了解Socket,上篇博客写了Socket的基本使用方法,步骤主要为

  1. 创建一个socket

  1. socket是进程之间通信的,那么进程通信如何找到这个socket呢?当然是端口号,所以socket就要和端口号进行绑定,使用bind

  1. 把信息初始化完成以后,需要把socket状态设置成监听模式

  1. 监听是否有客户端的socket来找到该socket,如果有,就建立连接accept

  1. 接受数据recv

上面是一个程序,当程序在接受数据的时候,没法干下一步的工作,进入阻塞状态。那收到数据了,就去唤醒该进程,继续执行代码。recv函数返回的是接收到的数据。

socket本身是一个对象,维护一个输入缓冲区,输出缓冲区以及等待队列。

在阻塞的时候就会把进程A放在socket的等待队列(地址而并非完全复制过来)。当socket数据recv完了以后,就会唤醒进程A,重新将进程A放入工作队列中。


上面对应的是一个socket的情况,如果一个进程在等待多个socket怎么办?这种场景应该还是比较常见的,服务端一般都要接受多个客户端的访问。

那么recv只能监视一个socket,显然是不能满足需要的。


监视多个socket

select

监视多个socket一种很朴素的思想是,维护一个socket列表(把所有的socket放在一起),我就盯着这些socket看,如果有一个socket收到数据完了,就把该进程唤醒。

select每次调用的时候要把该进程加入到所有socket的等待队列中去,这里需要遍历一次,所以select默认只能盯着1024个socket。

而且进程被唤醒之后,不知道哪些socket收到数据,这样还需要遍历一次。

epoll

select不知道哪些socket收到数据,挨个遍历效果太低了。这样哪个就绪了(大喝一声:cpu数据传完了你快来梳理),我先给你记到小本本上,等进程被唤醒以后只要对着这个小本本找就可以了。

对于epoll,某个进程创建了一个epoll对象之后,同样的,该对象会被这些socket添加到等到队列中,和刚才的区别在于,这次等待队列中是epoll对象而并非进程。rdlist里面存放的是就绪的socket列表,

socket接收到数据以后,会调用中断程序,让rdlist添加这个socket进去,与此同时,唤醒eventpoll等待队列中的进程。

http://www.yidumall.com/news/9876.html

相关文章:

  • 网站公安备案查询免费个人自助建站
  • 做简易动画的网站全网
  • 定制公交app下载聊城网站seo
  • 做企业英语网站要注意哪些新闻头条今天最新消息
  • 商务网站开发与建设论文怎么做电商新手入门
  • 做实体上什么网站找项目上海网络关键词优化
  • 做微商进哪个网站安全网络推广专员是做什么的
  • 陕西咸阳做网站的公司郑州seo教程
  • 淘宝店铺可以做网站优化么百度爱采购优化排名软件
  • 哪个全球购网站做的好处如何网络推广新产品
  • 网站备案查询官网入口查询天津的网络优化公司排名
  • 网站建设需求调研表今日最新足球推荐
  • 网站模板psd素材可视化网页制作工具
  • 咖啡网站建设今天最火的新闻头条
  • 注册大创网搜索引擎推广和优化方案
  • 武汉网站开发公司排名seo是什么级别
  • 网站程序是如何开发的网络公司
  • 网站全屏轮播怎么做免费企业建站
  • 网站建设如何开单友情链接交换工具
  • wordpress模板怎么调用css样式win7系统优化软件
  • phpstudy做网站推广文案
  • 哪个做简历的网站可以中英的百度开放平台
  • 做网站如何防止被抄袭市场调研的重要性
  • 成功网站运营案例怎么制作属于自己的网址
  • 政府门户网站群建设模式网络推广赚钱项目
  • 淘宝网站做推广收费吗百度统计收费吗
  • 深圳市建设厅网站网络推广营销公司
  • 深圳 网站建设公司百度人工客服电话怎么转人工
  • iis创建网站seo sem是什么
  • 网站改备案信息千锋教育培训怎么样