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

给几个网站谢谢知识付费微网站开发

给几个网站谢谢,知识付费微网站开发,网页游戏网站mhn,网络推广怎么找客户资源在之前的课程中呢#xff0c;我向你介绍了大量web rtc线程相关内容#xff0c;今天呢#xff0c;我们来看一下线程事件处理的基本知识。首先#xff0c;我们要清楚啊#xff0c;不同的平台处理事件的API是不一样的#xff0c;这就如同我们当时创建线程是类似的#xff0…在之前的课程中呢我向你介绍了大量web rtc线程相关内容今天呢我们来看一下线程事件处理的基本知识。首先我们要清楚啊不同的平台处理事件的API是不一样的这就如同我们当时创建线程是类似的对吧那对于Windows系统来说呢它提供了wsa even的select以及完全端口处理事件。 当然完全端口的方式会更高效一些但对于web rtc来说呢它选择的是wsa even的select所以对于这节课来说呢我会向你介绍大量ws a开头的。相关API那了解了这些API之后呢我们再来看相关代码的时候就会游刃有余了 Linux系统下呢它采用的是一炮儿。或者是select对吧如果有一泡儿就使用一泡儿没有一泡儿就选用select。mac也是类似的。mac是kk没有kk的时候呢就使用select因为select呢是跨平台的。 那下面呢我们再来看一下web rtc下的事件处理类对于web rtc来说呢包括了两个事件处理类第一个呢是non socket server。所谓non socket server就是。处理无socket事件的事件处理类。与之对应的呢是physical socket server就是处理有socket事件的事件处理类。那我们在使用这两个类的时候啊一个区分点就是是否处理socket事件。那根据这个呢我们来选择是non socket server还是physical socket server 实际我们去看peer connection clan的相关代码的时候你会发现。那对于网络线程来说它是通过physical socket server来创建的而对于。这个工作线程来说它由于不需要处理socket事件所以它选择的是non socket server对吧 那对于WINDOWS下呢实际也有两种不同的事件那第一种呢我称为普通事件就是通过create event来创建的事件那通过这个API呢我们可以创建出一个句柄。那拿到这个句柄之后我们就可以做事件处理了。 还有一种呢是异步IO事件。那这种呢是通过wsa create event来创建的对于这种事件我们是可以与socket进行绑定的。而对于普通事件来说呢它是无法与socket进行绑定的。 这是它们之间的一个最主要的区别。所以对于y八七c来说它在实现physical socket server的时候呢就使用的wsa create event这种类型的事件。 而non socket server使用的是create event这个API来创建的事件这个我们要清楚。webrtc调用windows的接口 好那下面呢我们就来看看non socket server它是如何使用事件的首先呢我们在使用事件之前。都要通过create event来创建一个事件句柄那这个事件句柄之后呢我们可以调用wait for single object。来等待事件。那这时候呢这个线程就处于睡眠状态了 对吧直到有事件触发的时候它才会继续执行。好对于其他线程来说呢它就可以调用来触发事件当事件触发之后等待线程会被唤醒。这是它的一个基本的逻辑就是创建事件等待事件发送事件。OK那我们来对create event这个API做一下详细介绍。对于这个API来说呢 它返回值是一个句柄它有四个参数 第一个参数呢是事件属性。一般我们设成down就OK了也就是采用默认的事件属性好 第二个比较重要啊就是是否手工复位如果我们这个参数设置成true呢就是每次我们触发完事件之后呢都要重新给它调一下reset event进行复位。通常情况下我们这块儿都设成force让它自动复位也就是说我们事件触发完了之后 这个event呢可以重新再开始触发信号这就是第二个参数它的含义。 那第三个参数呢就是初始状态当它为处的时候就说明事件正在触发中在一般情况下我们不使的时候都给它生成false 这样我们才可以使用set event来触发事件把等待线程唤起所以force才是我们经常使用的这个参数。 好最后一个呢就是我们创建event的时候这个event是匿名的还是有名的通常情况下我们都创建匿名事件就能满足我们的需求了。OK好 第二个API呢是wait for single object这个API也非常关键它有两个参数。第一个参数呢就是我们前面通过create event创建的handle。那第二个参数呢就是我们等待的时间如果我们的等待线程想一直等待直到事件发生为止。 那你需要把这个参数设成infinite如果你想等待一段时间如果没有收到信号。我就结束这个等待。那你就可以在这儿设一个毫秒时间对吧比如20毫秒我就等待结束这是它第二个参数。 那对于这个函数的返回值呢它主要有三个第一个呢就是事件已经到达会返回wait object 0。如果超时了是wait time out 如果失败了是wait field那当出现失败的情况下呢我们可以通过get last error来获取错误的信息到底是什么导致了这个函数失败了对吧好这是non socket server使用的API 接下来呢我们再来看看physical socket server使用了哪些API那它使用的API就稍微多一些。 第一个呢是wsa create event。同理它也是创建事件可以处理的事件好。 第二个呢是wsa wait for multiple event。那这个事件呢与wait single object是类似的只不过它是可以等待多个事件的发生。而对于wait single object呢它只能等待一个事件的发生。这是它们之间的一个主要区别 第三个是wsa set event触发事件这很好理解。第四个是wsa reset event对于ws a相关的事件来说呢它必须使用reset来重置事件。这是与我们前面介绍的通过create event创建的事件的最大不同因为对于create event创建的事件来说呢。它既可以手动复位也可以自动复位。 而对于wsa create event创建的事件呢必须通过手工复位也就主动调用reset even的这个函数来进行复位。好以上呢是。非常重要的四个API对吧 那接下来呢我们再看看与socket相关的这个API。那第一个与socket相关的API呢是wsa even的select。那它的作用呢是将socket与某个事件进行绑定。那我们需要注意啊这里进行绑定的时候是可以多个socket绑定到同一个事件里也就是说当这个事件发生的时候。我们要枚举每一个socket 看到底是哪个socket发生的事件因此呢它提供了第二个就是ws a。enumerate network events那这个API呢就是当事件发生的时候要判断具体是哪个socket产生的。那这两个API非常关键。 对于我们处理socket事件那下面呢我们就来看看几个重要API的参数。第一个呢是wsa wait for multiple events对于这个API来说呢 它包含的参数稍微多一些我们一项一项来看啊。第一个呢c疑问词它代表的是我目前要监听的事件的个数是多少 那这个数从哪来的呢实际就从第二个参数那第二个参数呢是监听事件的数组。这数组中有几个事件这儿呢就填几比如数组中有两个这儿就填二有三个这儿就填三。 对吧所以这两个参数呢关系非常密切好第三个参数是vito什么意思呢就是当它为真的时候。代表的是等待所有事件都发生的时候。才会唤醒线程 那如果为FALSE呢是只要这些事件中有一个事件触发了。那就会将这个线程换起。对这是它们的一个主要区别。一般情况下呢我们都会将这个参数设成也就是说当有一个事件触发之后。我们就将这个线程换起好 再接下来呢是time out如果time out设置成负一就永远等待直到有事件发生 对吧如果是一个具体值呢就等待具体的时间如果在这期间没有事件发生它就超时了超时退出这个等待唤起线程。那最后一个参数呢我们设成就OK了这个意义不大。 那第二个PR是wsa events elect对于这个API来说呢它就是将socket与事件做一个绑定对吧所以第一个参数是我们要监听的socket那第二个参数呢就是要绑定的事件 也就是socket要与哪个事件进行绑定所以这块呢我们添一个wsa event类型的事件。最后一个参数是我们对哪些事件感兴趣你是对socket的读事件感兴趣还是写事件感兴趣还是连接事件感兴趣等等。一系列的。那一般情况下我们会将socket它相关的事件都进行置位也就是读写连接。都进行监听每个来了之后我们进行相应的处理。好再下来是wsa enumerate network events。 这个API与刚才我们介绍的是类似的。它也有三个参数第一个参数呢是socket第二个参数呢是事件也就是说当我们调这个函数之后。它就会把触发这个事件的所有的socket进行一次遍历。那遍历之后呢就会拿到一个结果也就是network events这个结果在这个结果中。会输出到底是否有事件触发如果有的话说明这个socket触发了事件如果没有的话说明不是这个socket触发的事件。 这也非常好理解好那除了我们刚才介绍这些内容之外呢对于physical socket server来说。它有两种事件源那第一种事件源呢就是我们刚才介绍的socket的事件源当socket读写或者连接的时候呢都会触发事件。那第二种事件源呢就是普通事件。那这种实验就是wsa event这种类型的或者是对于posix平台来说它使用pap也就是管道。来触发普通事件那这种普通事件呢 主要用于我们线程的同步那后边呢我们在看代码的时候你就会对于这一块知识呢有一个更深的了解。现在我们只要知道对于physical socket server来说它不仅仅可以处理socket事件还可以处理普通事件。 好现在呢我们来对这节课做一下小结首先呢我们要知道web rtc下有两个事件处理类一个是physical socket server一个是non socket server。它们的最大区别就是一个处理socket事件一个是不处理socket事件对吧 那另外呢我们要知道对于Windows系统下它的事件呢包括两种一种是wsa even的事件一种是普通的even的事件。对于now socket server来说它使用的就是普通的event而对于physical socket server它使用的是ws a开头的event。 好第三点就是我们介绍了几个重要的API。像wait single object wait multiple event event select等等这些API我们今天都做了详细介绍对吧 实际通过我的介绍呢你应该也了解这些API其实都不复杂但如果你对它不了解的话我们直接看web rtc代码。就很容易让你晕头转向。因为它的参数比较多如果你还不知道每个参数的含义是什么那读这个代码就非常费劲了。 通过这次介绍的基础知识之后呢我们再看web rtc相关代码的时候你会觉得非常清晰了那我们今天的课呢就到这里有任何的问题 你可以到讨论区或者是QQ群里去给我留言。我在那里呢给你做相应解答好谢谢。
http://www.zqtcl.cn/news/492921/

相关文章:

  • 免费响应式网站深圳关键词优化
  • 网站宣传模式做微视频的网站
  • 网站改版后的内容福建 网站建设
  • 网站的文件夹企业邮箱在哪查看
  • 开了360网站卫士ssl如何做301深圳制作网站开发费用
  • 在哪里做马可波罗网站公众号自己做电影网站
  • 网站建设音乐插件怎么弄陕西城乡建设部网站首页
  • 全国免费自学网站打开百度网站首页
  • 国外网站开发公司晋江论坛网
  • 问卷调查网站个人网站源码免费下载
  • 网站备案信息核验单填写建设企业网站价钱
  • 相城建设监理有限公司网站网页设计中html代码
  • 做农产品网站高端汽车
  • 工信部网站首页wordpress网站搬家vps
  • wordpress 淘客插件长沙排名优化公司
  • 网站首页怎么制作过程如何自己创作一个游戏
  • 自己做企业网站在哪学习建网站
  • 门户网站建设 突出服务学习电子商务网站建设与管理的收获
  • 做网站排名大概要多少免费做个人网站
  • 哈尔滨网站建设效果wordpress主题 手机app
  • 收录网站源码海外域名怎么打开
  • 荥阳网站建设上海十大营销策划公司
  • 在网站挂广告一个月多少钱巫溪网站建设
  • 网站备案名称的影响吗济南网站建设招聘
  • 南城区网站建设公司y2学年做的租房网站
  • 温州网站建设咨询网站源码下载后怎么布置
  • 邢台网站推广wordpress文章数据库位置
  • wordpress 快站wordpress 安装主题 主机名
  • 老网站改版启用二级域名网站建设服务是什么意思
  • 网站建设营销话术外销网站