C6748平台下NDK开发使用UDP协议的问题 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3165|回复: 1
打印 上一主题 下一主题

[已解决] C6748平台下NDK开发使用UDP协议的问题

[复制链接]

12

主题

22

帖子

1258

积分

金牌会员

Rank: 6Rank: 6

积分
1258
跳转到指定楼层
楼主
发表于 2017-7-17 14:24:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们目前在做UDP协议传输数据的测试,使用sendto()这个socket函数,程序大体上没有问题。
但是在长时间大数据量测试的时候(比方说超过10GB总数据量),发现sendto这个函数会返回一个编号为55的错误。然后程序从此就再也发不出去数了。
serrno.h中,这个错误的描述为,no buffer space available
在NDK User Reference中的描述为,Memory allocation failure while attempting to send data


目前我查到的解决方案有两个:


1.扩大发送缓存。在.cfg文件中调整(NDK-->global-->buffers-->BM)。我将默认的buffer扩大成原来的五倍,目前测试了一次,连续发送了25GB没有报错,貌似是解决了。但是心里还是有个疑问,会不会在发送更多数据的时候出问题,比方说200GB。


2.报错之后,让程序暂停再运行。就是在出现错误后,使用Task_Sleep这个函数延迟一段时间。目前这个方法还没有测试,因为我们希望采集到的数据尽量不要丢失,如果暂停若干时间后,这段时间采集的数据必然会丢。


现在想问的是,这个问题有没有什么更好的解决方法。谢谢各位大大!


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

3

主题

852

帖子

3538

积分

创龙

Rank: 8Rank: 8

积分
3538
推荐
发表于 2017-7-23 20:58:48 | 只看该作者
先sleep再send,减少掉包
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-15 09:36 , Processed in 0.037407 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表