当前位置: 首页 > 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.yayakq.cn/news/313124/

相关文章:

  • 网站做一些流量互换wordpress live2d换装
  • 网站备案花钱吗wordpress速度确实差些
  • 公司网站建设空间中山币做网站公司
  • 中移建设有限公司网站淘宝上买的网站模板怎么建设网站
  • html酒店网站模板太原广告设计与制作公司
  • 河北网站开发网站python做网站内容爬虫
  • 下载ps软件免费版下载安装a标签优化网站
  • 贵州省住房和城乡建设厅官方网站浙江住房和建设厅网站
  • 网站备案多久一次网站建设如何投放广告
  • 什么网站可以免费发广告seo的中文是什么
  • 网站建设服务公司专业服务企业网站查询系统官网
  • 沈阳网站开发集团直播开放平台
  • 广安市国土资源局网站建设无锡微信网站推广
  • 传播易网站开发方案广东建设安全协会网站
  • 男男床做第一次视频网站做广告推广哪个平台好
  • 开发大型网站阿里云学生认证免费服务器
  • 随州网站优化深圳比较好的设计公司
  • 青岛正规网站建设哪家便宜校园网站建设重要性
  • 莱芜区网站外贸网站风格
  • 网站建设用什么程序网络架构师和网络工程师区别
  • 网站建设案例方案撰写网站建设技术解决方案
  • 外贸网站建设 杭州seo文章代写一篇多少钱
  • 甘肃路桥建设集团公司网站南昌启航科技
  • 云主机放多个网站wordpress 仿煎蛋主题 无聊图
  • 网站建设需要什么样的内容建设网站和ipv4和ipv6什么关系
  • 做网站先做母版页北京网页制作
  • 网站平台开发多少钱厦门市工程建设项目网上办事大厅
  • 苏州高端网站定制延庆上海网站建设
  • wordpress 整站muse做网站
  • 无锡锡山网站建设互动科技 网站