服务器远程预览本地设备视频, 预览多个,打不开视频流
今天,解决一个现场报回来的故障,关于sock 异常处理导致的问题。
现象是设备收到服务器视频预览的命令后,给服务器传视频数据,发送失败,返回EPIPE(32)错误号;
而且本地又是客户端, 正常的逻辑是本地收到服务器的close流命令后,方可关闭预览流连接。
目前,由于设备端对发送返回值处理没有对errno做细节处理,没有去释放本地资源,导致资源泄露。
增加一些ERRNO 普遍返回值介绍,以后长点记性:
EPIPE:由于 client 在服务器返回前主动断开连接,所以服务器在返回时写 socket 收到SIGPIPE报错
AGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
EWOULDBLOCK用于非阻塞模式,不需要重新读或者写
EINTR指操作被中断唤醒,需要重新读/写
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。
从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞起来等待数据准备就绪返 回,read函数会返回一个错误EAGAIN,提示你的应用程序现在没有数据可读请稍后再试。
又例如,当一个系统调用(比如fork)因为没有足够的资源(比如虚拟内存)而执行失败,返回EAGAIN提示其再调用一次(也许下次就能成功)。
Linux - 非阻塞socket编程处理EAGAIN错误
在linux进行非阻塞的socket接收数据时经常出现Resource temporarily unavailable,errno代码为11(EAGAIN),这是什么意思?
这表明你在非阻塞模式下调用了阻塞操作,在该操作没有完成就返回这个错误,这个错误不会破坏socket的同步,不用管它,下次循环接着recv就可以。 对非阻塞socket而言,EAGAIN不是一种错误。在VxWorks和Windows上,EAGAIN的名字叫做EWOULDBLOCK。
另外,如果出现EINTR即errno为4,错误描述Interrupted system call,操作也应该继续。
最后,如果recv的返回值为0,那表明连接已经断开,我们的接收操作也应该结束。
服务器远程预览本地设备视频, 预览多个,打不开视频流相关推荐
- Zan Proxy:解决前端跨域、服务端预览本地文件、
Zan Proxy 官网链接 https://youzan.github.io/zan-proxy/ Mac 需要 安装证书 https://youzan.github.io/zan-proxy/bo ...
- Qt Creator在设备上预览
Qt Creator在设备上预览 在设备上预览 在Boot2Qt设备上预览 在设备上预览 要在Boot2Qt设备上预览UI ,您需要使用USB电缆或有线或无线连接将设备连接到系统,具体取决于设备,并配 ...
- 远程VPS和本地电脑之间无法粘贴复制及分享文件
问题原因:大概率是因为rdpclip.exe 进程未正常运行,或桌面远程未给予足够的权限. 操作步骤: 1.在本地电脑工具栏右键打开任务管理器,查看有无rdpclip.exe进程,通常,只要存在该进程 ...
- 海康威视设备网络SDK_Win64 V6.1.9.4_build20220412 java本地demo实现预览视频下载、摄像头转向控制等
1 下载sdk 下载地址:https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10 1.1 下载内容示例 1.2 dem ...
- 电脑摄像头未能创建连接服务器,win8打开摄像头提示“未能创建视频预览,请坚持设备连接”怎么办...
win8系统电脑可以通过摄像头进行视频.或语音聊天,非常方便而且实用.但是使用摄像头过程中也会遇到一些奇怪的问题,最近有win8系统用户打开摄像头的时候出现预览视频失败,提示"未能创建视频预 ...
- 使用Wpf+SDK预览本地摄像头设备
一.前言 海康威视桌面板开发,追求简单快捷高效可选择Winform进行开发,追求界面好看当然自然需要选择WPF进行开发,WPF在布局也界面效果展示上面可以做的很漂亮. WPF 和 Winform 开发 ...
- javascript显示本地服务器图片,JavaScript图片本地预览功能的实现方法
这篇文章主要介绍了JavaScript实现图片本地预览功能,针对非IE浏览器的HTML5滤镜功能及IE浏览器的相关组件功能实现不上传至服务器预览本地图片的效果,需要的朋友可以参考下 本文实例讲述了Ja ...
- 【技术贴】最新唯一解决:未能创建视频预览,请检查设备连接,确定没有其他应用程序或用户使用该设备...
[技术贴]最新唯一解决:摄像头未能创建视频预览,请检查设备连接,确定没有其他应用程序或用户使用该设备. 搞了两个月都没有解决,今天给解决了!!!!哇哈哈哈哈 1.百度一下[终极解码2011],下载进行 ...
- 电脑摄像头未能创建连接服务器,Win7中摄像头提示未能创建视频预览错误怎么办...
最近有不少用户在我们网站上提问说他们在打开摄像头的时候,就会遇到打开摄像头的时候提示"未能创建视频预览,请检查设备连接"的问题,这是怎么回事呢,出现这样的原因的话有可能是电脑中毒了 ...
- 电脑摄像头未能创建连接服务器,Win7摄像头提示"未能创建视频预览"的原因及解决方法...
在Win7系统中打开摄像头,出现提示"未能创建视频预览,请检查请检查设备连接",出现这种情况,第一反应会认为摄像头坏了或者是电脑出问题了,如果不能确定,我们可以逐一进行排查,找出真 ...
最新文章
- 【原创】Cookie应用(二)
- 记一次数据中心云平台系统项目实施
- j2me学习三_LCDui类学习(2)
- 负载测试与压力测试的区别
- c语言入门教程文库,C语言入门教程(全集)课件
- 为特使建立控制平面的指南第2部分-识别组件
- Elasticsearch分布式机制探究
- 重启服务器后网页显示nginx,解决重启服务器以后Nginx无法启动
- ad采样信噪比与噪声_在AD转换中的过采样和噪声形成
- [九度][何海涛] 数组中只出现一次的数字
- mysql5.6 prompt的用法详解
- Eclipse反编译插件(免费无需下载资源)
- 在大米云主机中采用CentOS 6.5 部署Redmine 3.3
- a5解锁 oppo_oppoa5忘记密码了怎么强制解锁
- Java实现 蓝桥杯 算法提高 学霸的迷宫
- markdown如何设置图片大小_cnblogs文章/MarkDown内如何调整图片的宽度?
- Windows10下使用Conda安装TensorFlow-GPU
- 自适应与响应式的区别?
- [Shiro教程] Shiro 教程基于SSM(SpringMVC + Spring + Mybatis)EHCache版本
- ATFX:欧央行利率决议来袭,重点关注拉加德新闻发布会