社区
C语言
帖子详情
linux下使用read读取socket数据时间较长
weixin_40290083
2019-08-23 05:00:02
操作系统:linux
开发语言:C
业务需求:通过socket向硬件产品请求数据,以采集硬件产品数据。
硬件产品工作在服务端。请求的过程:创建socket连接->向硬件产品发送数据请求指令->硬件产品响应请求->读取数据。
数据的请求使用write函数发送请求指令,数据读取使用read方法读取。存在问题,数据读取需要40多秒。
然而40秒的响应时间远远超过预期的值,如何解决该问题。
...全文
413
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
丢失
数据
可能原因
最近在csapp上看到
read
和write
socket
时 内部缓冲约束和
较长
的网络延时会引起
read
和write返回不足值,对
linux
管道调用
read
和write时,也可能出现不足值。 在网上查询了一下原因,stackoverflow上的这个解释感觉比较有道理 这个人遇到的问题是,用python的时候,如果只是传输小
数据
(1000字节),
read
会得到正确的结果,但是如果传输比较大的
数据
,例如9500字节,最后只能得到1000多的
数据
。 解释👇 TCP是面向字节流的协议,
数据
以字节的形式进行传输,长
Linux
中
socket
的select()函数
使用
socket
通讯分为两种模式:阻塞和非阻塞模式。阻塞模式在读写缓冲区时都是lock的,即没有退出或没有获得预期结果时会一直卡住不返回。对于
read
操作,缓冲区没有
数据
时会一直等待并将当前线程挂起,知道缓冲区有
数据
过来再唤起线程继续执行,对于write操作,当缓冲区没有足够空间写入
数据
时,也会一直等待,直到缓冲区有足够的空间写入
数据
再返回结果继续执行下面的代码。非阻塞模式就是和阻塞模式相对的了,非阻...
Linux
/Window下
socket
在
Linux
中,一切都是文件,除了文本文件、源文件、二进制文件等,一个硬件设备也可以被映射为一个虚拟的文件,称为设备文件。例如,stdin 称为标准输入文件,它对应的硬件设备一般是键盘,stdout 称为标准输出文件,它对应的硬件设备一般是显示器。对于所有的文件,都可以
使用
read
() 函数
读取
数据
,
使用
write() 函数写入
数据
。 “一切都是文件”的思想极大地简化了程序员的理解和
Linux
下实现
socket
网络通信(一)
socket
网络编程 目录
socket
网络编程1、服务端的工作流程2、客户端工作流程相关库函数和注意事项头文件1、
socket
文件描述符2.1、把服务端用于通信的地址和端口绑定到
socket
1、主机字节序与网络字节序2、ip地址转为网络字节序3、转换函数 htonl,ntohl,htons,ntohs2.2、地址和端口相关的结构体3、服务端程序绑定(bind)通信地址和端口4、客户端程序指定服务端的ip地址或域名(负载均衡)5、listen()、connect()、accept()1、listen函数2、c
Linux
网络编程——
socket
网络编程
Linux
网络编程——
socket
网络编程
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章