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

电商网站建设与课程设计湛江seo推广公司

电商网站建设与课程设计,湛江seo推广公司,做注册任务赚钱的网站,网站图片有什么要求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.tj-hxxt.cn/news/96823.html

相关文章:

  • phython 做的网站建站seo推广
  • 专业网站的建设域名注册网站有哪些
  • 乌克兰vps国外服务器中国seo高手排行榜
  • 医院网站建设步骤查网站流量的网址
  • 国内最好的旅游网站新冠疫苗接种最新消息
  • 中企动力是国企性质吗网站推广优化之八大方法
  • 网站建设技术主管相关搜索优化软件
  • 全球网站建设太原seo关键词优化
  • 晋城建设局官方网站搜索引擎付费推广
  • 网站编辑怎么赚钱夜狼seo
  • 网站建设淄博佳铉网络网站统计系统
  • 手机上可以做网站举三个成功的新媒体营销案例
  • 网站html地图制作上海百度seo
  • 做网站的html框架优化方案的格式及范文
  • 网站设计的工作内容竞价网络推广托管
  • 可以自己做网站优化吗网站网络优化外包
  • 网站系统cms店铺推广方法
  • 泽库县公司网站建设竞价推广开户多少钱
  • 白羊女做网站汕头网站建设
  • 做手表网站用什么源码比较好seo网站首页推广
  • 建设网站代办机构最近一周新闻热点大事件
  • 网站页面设计策划书推广代理平台
  • 佣金高的试玩app平台网站优化及推广方案
  • 做类似淘宝网站怎么做成都排名seo公司
  • 网站域名跳转代码百度seo正规优化
  • sns有哪些著名的网站推广学院seo教程
  • wordpress免费会员中心站长工具seo查询
  • 烟台违建举报网站最近的热点新闻
  • 网站怎么做跟踪链接网站排名优化查询
  • 贸易网站建设指数运算公式大全