社区
C语言
帖子详情
linux下使用read读取socket数据时间较长
weixin_40290083
2019-08-23 05:00:02
操作系统:linux
开发语言:C
业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。
硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。
数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。
然而40秒的响应时间远远超过预期的值,如何解决该问题。
...全文
490
3
打赏
收藏
linux下使用read读取socket数据时间较长
操作系统:linux 开发语言:C 业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。 硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。 数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。 然而40秒的响应时间远远超过预期的值,如何解决该问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qq_44560478
2019-09-03
打赏
举报
回复
用fputs和fgets
weixin_40290083
2019-08-23
打赏
举报
回复
问题解决了,read方法不能放在while循环中,设备有请求时会及时响应,并且每隔40秒定期发送数据,read放在while时,在一直等待网络数据,那么while就死循环了,write就只执行了一次。
NorZ
2019-08-23
打赏
举报
回复
说一个啊,你的时间计算有问题,1 秒(sec) = 1000毫秒(ms,millisecond) = 1000000微秒(usec, microsecond)
socket
通信
read
丢失
数据
可能原因
内部缓冲约束和
较长
的网络延时会引起
read
和write返回不足值,对
linux
管道调用
read
和write时,也可能出现不足值。 在网上查询了一下原因,stackoverflow上的这个解释感觉比较有道理 这个人遇到的问题是,用python的...
Linux
环境下
Socket
CAN异步通信工具的实现与应用
通过
Socket
CAN,开发者能够利用其API进行CAN
数据
的发送和接收,使得在
Linux
系统上开发CAN通信相关软件变得更加简单和标准化。实时系统通常需要满足以下要求:高可靠性:系统能够稳定运行,对外界干扰和内部错误具有...
linux
下
读取
socket
相关的系统调用总结
第四个参数一般置0或者以下组合:MSG_DONTROUTE:不查找路由表,是send函数
使用
的标志.这个标志告诉IP协议.目的主机在本地网络上面,没有必要查找路由表.这个标志一般用网络诊断和路由程式里面MSG_OOB:接受或发送带外...
Linux
C/C++
socket
Linux
C/C++
socket
Linux
Socket
编程实战指南
简介:
Linux
Socket
编程是网络编程的关键,本教程深入讲解了
Socket
的基础知识、编程步骤和示例代码。
Socket
分为流式、
数据
报和原始类型,每种类型适用于不同的网络通信需求。教程中详细说明了创建、绑定、监听、...
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章