社区
C语言
帖子详情
linux下使用read读取socket数据时间较长
weixin_40290083
2019-08-23 05:00:02
操作系统:linux
开发语言:C
业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。
硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。
数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。
然而40秒的响应时间远远超过预期的值,如何解决该问题。
...全文
459
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
丢失
数据
可能原因
最近在csapp上看到
read
和write
socket
时 内部缓冲约束和
较长
的网络延时会引起
read
和write返回不足值,对
linux
管道调用
read
和write时,也可能出现不足值。 在网上查询了一下原因,stackoverflow上的这个解释感觉比较有道理 这个人遇到的问题是,用python的时候,如果只是传输小
数据
(1000字节),
read
会得到正确的结果,但是如果传输比较大的
数据
,例如9500字节,最后只能得到1000多的
数据
。 解释👇 TCP是面向字节流的协议,
数据
以字节的形式进行传输,长
Linux
的
Socket
开发概述
套接字(
socket
)是
Linux
下的一种进程间通信机制(
socket
IPC),在前面的内容中已经给大家提到过,
使用
socket
IPC可以使得在不同主机上的应用程序之间进行通信(网络通信),当然也可以是同一台主机上的不同应用程序。
socket
IPC通常
使用
客户端服务器这种模式完成通信,多个客户端可以同时连接到服务器中,与服务器之间完成
数据
交互。内核向应用层提供了
socket
接口,对于应用程序开发人员来说,我们只需要调用
socket
接口开发自己的应用程序即可。
linux
下
读取
socket
相关的系统调用总结
第一个参数指定接收端套接字描述符;第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的
数据
;第三个参数指明buf的长度;第四个参数一般置0或者以下组合:MSG_DONTROUTE:不查找路由表,是send函数
使用
的标志.这个标志告诉IP协议.目的主机在本地网络上面,没有必要查找路由表.这个标志一般用网络诊断和路由程式里面MSG_OOB:接受或发送带外
数据
,表示能够接收和发送带外的
数据
.
Linux
C/C++
socket
Linux
C/C++
socket
Linux
中
socket
的select()函数
使用
socket
通讯分为两种模式:阻塞和非阻塞模式。阻塞模式在读写缓冲区时都是lock的,即没有退出或没有获得预期结果时会一直卡住不返回。对于
read
操作,缓冲区没有
数据
时会一直等待并将当前线程挂起,知道缓冲区有
数据
过来再唤起线程继续执行,对于write操作,当缓冲区没有足够空间写入
数据
时,也会一直等待,直到缓冲区有足够的空间写入
数据
再返回结果继续执行下面的代码。非阻塞模式就是和阻塞模式相对的了,非阻...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章