嵌入式linux下大数据量的网络传送问题

ykeastronaut ykeastronaut 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请通信程序前辈 多多帮帮忙!
小弟刚进嵌入式的门槛不久,最近在做一款中速的数据采集产品,在网络通信这块儿遇到问题,还望大家多提提意见,帮帮忙!
产品的采样率达到100ksps到500ksps,产品板跑的是linux系统,开发板上的内存总共是32MB,用fpga来做fifo,有不到1MB的空间。如果按100ksps的采样率采样的话,基本上每秒钟会出现如下的数据量:
100 *1024* sizeof(short) 每秒! 每秒约有200kB的数据量产生。若为500ksps,则有1MB/秒 的数据。
所以我需要很快地通过网络通信程序把这些数据全部传送到windows端! 在linux端构建了一个server,专门把这数据传到windos段的客户端。关键是我的server受限于linux下网络传输的最大块4096B限制,所以基本上我一次就传输2000个数据,约有4000B,再加上一些包头96字节。我也用setsockopt来设置过发送缓冲区为8192B,但是不太好使!网络传输跟不上数据产生速度,导致了数据有丢失,这是老总坚决不同意的!

所以请教高手,对于这种大量数据的传输问题,在linux下是如何去解决的呢? 像对于agilent,NI的上兆上G采样率的产品,它们是如何实现把这种大数据传到windows端呢?

我的数据传输过程中,都是以字符数组的形式来将数据发送的。我想请问一下linux下,在网络中有二进制数据流这种传输形式吗?不解!
我的MSN:scastronaut@gmail.com QQ: 759402252,望前辈提提意见,不吝指教!
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
ykeastronaut
通信技术 4,397 成员 28,909 内容