社区
C语言
帖子详情
linux下使用read读取socket数据时间较长
weixin_40290083
2019-08-23 05:00:02
操作系统:linux
开发语言:C
业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。
硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。
数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。
然而40秒的响应时间远远超过预期的值,如何解决该问题。
...全文
465
3
打赏
收藏
linux下使用read读取socket数据时间较长
操作系统:linux 开发语言:C 业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。 硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。 数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。 然而40秒的响应时间远远超过预期的值,如何解决该问题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
开发概述
套接字(
socket
)是
Linux
下的一种进程间通信机制(
socket
IPC),在前面的内容中已经给大家提到过,
使用
socket
IPC可以使得在不同主机上的应用程序之间进行通信(网络通信),当然也可以是同一台主机上的不同应用...
Linux
下高并发
socket
最大连接数所受的各种限制
1、修改用户进程可打开文件数限制在
Linux
平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都...
Linux
C/C++
socket
Linux
C/C++
socket
linux
下
读取
socket
相关的系统调用总结
第四个参数一般置0或者以下组合:MSG_DONTROUTE:不查找路由表,是send函数
使用
的标志.这个标志告诉IP协议.目的主机在本地网络上面,没有必要查找路由表.这个标志一般用网络诊断和路由程式里面MSG_OOB:接受或发送带外...
C语言
70,024
社区成员
243,253
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章