【bug-004】【tcp】网络断开重连后,客户端recv函数一直阻塞,不会返回
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,【前提】客户端采用tcp阻塞模式【现象】与相机设备建立连接后,偶尔出现几次突然就收不到相机发过来的数据;几经排查,怀疑跟网络波动有关,于是通过插拔网线来模拟网络波动,果然bug复现。【分析】为什么网络
千家信息网最后更新 2025年01月31日【bug-004】【tcp】网络断开重连后,客户端recv函数一直阻塞,不会返回
【前提】客户端采用tcp阻塞模式
【现象】与相机设备建立连接后,偶尔出现几次突然就收不到相机发过来的数据;几经排查,怀疑跟网络波动有关,于是通过插拔网线来模拟网络波动,果然bug复现。
【分析】为什么网络中断tcp不主动通知应用程序呢?这涉及到TPC/IP协议的一个设计原则,即终端对终端参数。什么意思呢?就是由调用层选择是否需要这种功能,如果需要,调用者就自己设置相应参数,而不是tcp一检测到网络中断就及时反馈,因为大多数的应用程序并不需要即时的通知。
ps:我们自己设计接口的时候也应该考虑这种原则。
【解决方案】
1、换成非阻塞模式;
2、阻塞+保活。
这样,就可以利用函数返回值来判断是否需要重连了。
网络
阻塞
原则
参数
应用程序
模式
相机
程序
终端
应用
波动
设计
函数
客户
客户端
主动
前提
功能
意思
接口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发项目绩效考核奖金分配
阿里云服务器 虚拟的吧
数据库并发速度排序
国产化 服务器 软件
河北广兆网络技术有限公司王丁
ftp服务器 ipv6
特种气体软件开发是什么意思
网吧停电需要关服务器吗
用什么创建和修改数据库结构
z-blog数据库
英雄联盟说是丢失服务器怎么回事
G3网络安全知识
管理云服务器的工具下载
mit-bih数据库是什么
域网络安全 工作
富阳区app软件开发
网络技术在美术教学中的应用
软件开发和编程一样不
广东有哪些服务器虚拟主机
建立数据库输入数据表格的方法
适合开服务器的笔记本
网络安全志愿活动心得体会
软件开发师的视频
关联其他数据库的表
用什么创建和修改数据库结构
c 软件开发工程师入职
联合国对缅甸网络安全法草案
石家庄网络安全咨询
服务器生命周期管理器
网络技术助力