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

电商网站建设与课程设计抖音广告推广

电商网站建设与课程设计,抖音广告推广,常州网站建设,国内用什么做网站2023.02.20 一次顿悟的经历 体验一次顿悟 ​ 需求: ​为避免接收数据时一直阻塞,先调用 select 在一定时间内判断是否有数据可读 如果超时,就报错没读到数据,即使返回 如果仍然在 set 里,就调用 recv 函数接收数据 问…

2023.02.20 一次顿悟的经历

体验一次顿悟

需求:
​为避免接收数据时一直阻塞,先调用 select 在一定时间内判断是否有数据可读
如果超时,就报错没读到数据,即使返回
如果仍然在 set 里,就调用 recv 函数接收数据

问题:
服务端发送数据是 3 秒发一次,
设置客户端超时 sec 为 5 秒,结果很快就返回了。

之前 5 秒超时时是接收第二个数据的时候报错
把超时时间从 5 秒改为 50秒,50/3 = 16,
显示成功接收且打印了16个数据,但第17个数据接收不到
每次接收数据都会打印接收长度,没有出现拼包的情况
说明一共调用了17次select函数
仿佛select计时是从最开始计的。。。
16次 recv 函数
recv 是非阻塞调用

服务端是不可能把前 16 个数据放在一起发送的
每 3 s 发送一次,然后依次有序接收、打印
第 17 个数据也不可能真的等待了 50 s
其实我之前在本地测试 fd_set 就有很奇怪的超时无效问题

磨叽一小时,突然就顿悟了:
select 函数最后一个参数传的是引用,timeval 结构体,每次会修改它,用了多少时间就从里面减去多少,所以越减越少,持续 “超时时间/发送间隔时间” 这么多轮次就刚好把时间用完了,退化为非阻塞接收数据,而服务端要过一段时间才发,导致误认为超时!

我以为它不会变化,所以只初始化了一次,为了减少运算的悲剧。。。

http://www.dinnco.com/news/10515.html

相关文章:

  • phython 做的网站微信营销软件有哪些
  • 河南住房和城乡建设委员会网站百度法务部联系方式
  • 暖通毕业设计代做网站门户网站推广方案
  • 免费微信网站怎么做百度seo运营工作内容
  • 医院网站建设步骤搜素引擎优化
  • 单页 网站模板友情链接获取的途径有哪些
  • 海外手机充值app下载广州seo顾问seocnm
  • 网站设计页面如何做居中深圳市网络seo推广平台
  • 河南网站公司购买友情链接网站
  • wordpress采集去掉多余链接火车头汕头seo关键词排名
  • 什么是网站维护中广州百度推广客服电话多少
  • 购物网站设计谷歌排名网站优化
  • 网站建设课程设计内容住房和城乡建设部
  • 门户做网站企业网站营销实现方式
  • 镇江专业网站建设优秀网站
  • 哔哩哔哩网站开发图片seo优化上首页
  • 网站快捷导航ie怎么做下载班级优化大师app
  • 怎么把自己做的网站放到网上网络营销的主要手段和策略
  • 寻找富阳网站建设谷歌chrome手机版
  • 自己做网站很难seo综合查询是啥意思
  • html网站建设中seo就业哪家好
  • 专门做微信推送的网站sem营销
  • b2b网站一个人可以做吗产品推广策略
  • 官方网站建设状况关键词排名seo优化
  • 网站推广手段企业邮箱格式
  • 做服务型党员网站百度云登录
  • 营销型网站建设科技网站建设公司
  • seo做多个网站手机上怎么制作网页
  • 怎么做网站统计品牌词优化
  • 网站建设盒子怎么搭建郑州网站建设推广优化