社区
网络编程
帖子详情
短时间内内的大数据量传输,为何会丢包呢?
leafjessica
2007-01-15 02:06:07
从采集卡读数据,再实时传输到服务端,速度为每秒10m,运行5分钟左右,但是一共3g的数据,服务端只能收到200m,是什么问题呢?我用的是csocket类,阻塞方式
...全文
1029
22
打赏
收藏
短时间内内的大数据量传输,为何会丢包呢?
从采集卡读数据,再实时传输到服务端,速度为每秒10m,运行5分钟左右,但是一共3g的数据,服务端只能收到200m,是什么问题呢?我用的是csocket类,阻塞方式
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leafjessica
2007-01-22
打赏
举报
回复
谢谢大家,很受益
daidongsheng
2007-01-21
打赏
举报
回复
如果你发送数据的数据量大,并且发送端和接收端都是同步,发送端不管接收端是否接受完毕就开始发送下一次数据,接收端缓冲区还没有来得及被处理就会被覆盖,所以会造成丢失数据.
这样的话采用异步传输,发送端等待接收端把数据处理完后再发送下一个.
采用多线程阻塞传输,当接收端没有数据的时候就一直等在那里,有数据到的时候就可以处理,同时启动另一个线程开始接收数据.
初学winsock,个人见解,有不对的地方还请大家指正~~
HewpKanXue
2007-01-21
打赏
举报
回复
3g/5分钟=3,000m/300s=10m/s,赫赫的
====================================
不知道你咋算的?
十兆网络的传输速度=10M/bps(这个是Bit)=10M/8
5分钟==300*10M/8=375M ,这是理论最大值阿。
换句话说,你就是百兆网络也才能传3.75G。
surefire
2007-01-21
打赏
举报
回复
借地方问一下,socket能从网卡抓以太网的包吗?
leafjessica
2007-01-20
打赏
举报
回复
楼上二位的回答我觉得很有道理,我想再问一下daidongsheng,多线程阻塞能说得清楚点吗?谢谢!
daidongsheng
2007-01-19
打赏
举报
回复
接收端数据堆积~可以使用异步传输,或者多线程阻塞
Analyst
2007-01-19
打赏
举报
回复
recv代码没问题,问题出在send端。TCP不会丢数据,你的send代码也没有问题,但是如果你的采集速度超过了网络传输的最大吞吐量,那么有两种可能,第一种采集和发送是异步的(分属两个线程),那么一部分采集数据会被丢弃,第二种采集和发送是同步的,那么发送过程会阻塞,采集的数据量会等于传输吞吐量。
吞吐量跟你的网络带宽、CPU处理速度、IO等都有关系,任何一项都可能成为瓶颈,需要具体测量来确定。
leafjessica
2007-01-18
打赏
举报
回复
应该是发送的数据太大造成的!这个问题有什么解决方法吗?
wj19781215
2007-01-18
打赏
举报
回复
1 查看send返回大小是否和你要发送的数据大小是否一致。
2 如果1中的两个大小不一致,就说明发送缓冲满了。
3 发送缓冲满,有可能是发送的数据包过大,或对方接收数据慢,接收缓冲区满。
4 从上述原因,就会丢失数据。
leafjessica
2007-01-18
打赏
举报
回复
我觉得DKMoggy的意见有道理啊,不如Juchiyufei也谈一谈啊,谢谢大家!
Juchiyufei
2007-01-17
打赏
举报
回复
此处省略100字,本贴尽供参考。 欲知详情,请发你的源代码(发送和接受的关键部分),另外建议+分。
===========
搞笑.
DkMoggy
2007-01-17
打赏
举报
回复
仅供参考,写错字了
DkMoggy
2007-01-17
打赏
举报
回复
10分有点少了, 即来之则安之。
你用的是UDP还是TCP, UDP没有连接、没有缓存。丢了不奇怪。
说说TCP丢包的原因:
严格来说TCP不可能丢包, 问题可能出在你的网络栈的大小。就发送端来说,
windows一般默认的大小是8192。 如果你试图发送>8192的数据是不会成功的。
如果缓存内有M byte的数据, 你发送>8192-M的数据同样不会成功。
此处省略100字,本贴尽供参考。 欲知详情,请发你的源代码(发送和接受的关键部分),另外建议+分。
gaooo
2007-01-17
打赏
举报
回复
关注,但没看到相关代码,描述也不清楚,无法深入
leafjessica
2007-01-17
打赏
举报
回复
“我有判断send的返回值阿,就是源程序中的mbyte值,发送首地址加上mbyte再继续发送“
楼上说的一个意思
kugou123
2007-01-17
打赏
举报
回复
send的时候,检查返回的字节数,这样好确认下一次发送的起始位置
leafjessica
2007-01-17
打赏
举报
回复
DKMoggy:
我有判断send的返回值阿,就是源程序中的mbyte值,发送首地址加上mbyte再继续发送
3g/5分钟=3,000m/300s=10m/s,赫赫
DkMoggy
2007-01-17
打赏
举报
回复
"严格来说TCP不可能丢包",这句话有些冲动。
TCP不保证不丢包, 但是它能保证在丢弃的时候会通知你。
DkMoggy
2007-01-17
打赏
举报
回复
Send也是有可能出错的,
为什不检测返回值呢?
3G/5Minute = 100M/S, 100M的网络基本达不到这个理论速度的。
leafjessica
2007-01-17
打赏
举报
回复
写错了,第一句为
while(nc<siz)
加载更多回复(2)
数据可视化延迟实时大屏优化:WebSocket增
量
传输
+Canvas渲染数据延迟压缩至300ms
本文介绍了如何通过WebSocket增
量
传输
和Canvas渲染技术,将数据可视化大屏的延迟压缩至300ms以内。文章详细分析了实时数据
传输
的挑战,解析了WebSocket的优势,并结合Canvas实现了高效的数据渲染。同时讨论了数据压缩、网络优化及局部更新等关键技术,解决了实际应用中的性能瓶颈。
SCP命令效率翻倍:你不知道的高级技巧
本文聚焦SCP命令在
大数据
量
场景下的性能瓶颈,剖析默认参数(如-C压缩、加密算法-c)在不同网络与文件类型下的适配问题;提出基于环境探测、文件特征分析与多参数基准测试的智能优化方法;涵盖限速策略、管道打包(tar+ssh)、连接复用及磁盘IO瓶颈识别等关键技术点,并介绍配套自动化工具的设计逻辑与落地实践。
目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】工业相机(补充篇)
本文围绕工业相机展开,介绍了机器视觉对
传输
的要求,解答了工业相机基础面试题,阐述镜头光学、相机参数、触发方式等知识。还介绍了光纤工业相机,对比其与CameraLink和CoaXPress的差异,突出光纤在带宽、距离、成本等方面的优势及对视觉应用的好处。
DouyinLiveRecorder项目熊猫TV录制问题分析与解决方案
本文围绕DouyinLiveRecorder项目在录制熊猫TV时出现的问题展开。分析了网络
传输
、多路流同步、网络加速配置等方面的原因,提出网络优化、录制参数调整、文件处理等解决方案,还进行技术深入解析并给出最佳实践建议,以提升录制质
量
。
Linux进程间通信方式对比:优缺点分析与应用场景
本文聚焦Linux操作系统中进程间通信(IPC),介绍了管道、消息队列、共享内存、信号
量
和套接字这几种常见IPC机制,详细分析了它们的优缺点及适用场景,并进行对比。开发者可根据应用需求、数据
传输
量
等因素综合评估,选择合适的IPC方式,以提高程序效率和可靠性。
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章