linux下使用read读取socket数据时间较长

weixin_40290083 2019-08-23 05:00:02
操作系统:linux
开发语言:C
业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。
硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。
数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。






然而40秒的响应时间远远超过预期的值,如何解决该问题。


...全文
413 3 打赏 收藏 转发到动态 举报
写回复
用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)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧