avatar-decorate
廿陆畵生 level
获赞
1145
粉丝
789
关注
1
看过 TA
1.2W
上海交通大学
2023
搜索算法
IP属地:湖南
前Shopee逐风计划信息检索算法工程师实习生
私信
关注
2023-02-27-午夜随笔之改革到底有多难?​​做老师有多难?改变一个人的思维,思想,思考,意识,认知,有多难?如图所示,同一个问题问了四次第一次问:减少了?第一次答:增加了。第二次问:降低了?第二次答:也增加了。第三次问:没有提升?第三次答:提升了。我回答了两次增加了,一次提升了,最终还是问出了第四次:降低在什么地方?第四次答:没降低。多么深刻的领悟多么质朴的真理思维的摩擦认知的火花神经的激发在一个充满错误的世界里寻找正确的道路在一片无穷无尽的黑暗里踩进一个个深坑在一段少点差点的信息差里不断摸爬滚打这绝不是表面看起来地那样容易懂知与不知之间的界限在这一念之间谁又说得清楚懂了还是不懂懂何懂懂何为懂懂何为不懂懂为何而不懂不懂何懂不懂何为懂不懂何为不懂不懂为何而不懂这绝不是表面看起来那样没道理可讲在不理解之中,于是只能去指责他人这是有因果有哲理的这是教育学里研究的至理在自己无法理解之中,却往往要去归不理解的他人为自己所见所感之果的因​​有时候你不懂​可能是你少装了某个插件​可能是你装错了插件误导了​可能是你插件版本不对产生了冲突可能是你不知道用哪个插件可能是你不知道怎么用那个插件可能是你装的插件更新了用法不同了可能是你底层不支持某些插件可能是你装的其他插件和这个插件不兼容总而言之,​人,需要开发者来开发所谓,​开发人生
0 点赞 评论 收藏
分享
体验一次顿悟​需求:​为避免接收数据时一直阻塞,先调用 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 结构体,每次会修改它,用了多少时间就从里面减去多少,所以越减越少,持续 “超时时间/发送间隔时间” 这么多轮次就刚好把时间用完了,退化为非阻塞接收数据,而服务端要过一段时间才发,导致误认为超时!我以为它不会变化,所以只初始化了一次,为了减少运算的悲剧。。。
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客企业服务