android udp 延时,使用Android的巨大UDP延迟/延迟

我正在开发一个

Android应用程序,它通过WLAN向Windows端点发送/接收大量UDP流量(不,我不能使用TCP).

问题是,当我增加流量时,我开始看到当我调用sendto(应用程序是用NDK写入)和我看到数据包到达Windows端点之间的巨大延迟.在10秒左右!反过来也是如此:我发现Windows端点发送的数据包与recvfrom()接收的数据包之间存在巨大延迟.

>更改SO_SNDBUF无效,因此我认为这不是应用程序级缓冲控制的问题.

>我已经验证了各种Android设备上存在的问题,所以我认为这不是硬件/无线驱动程序的问题

>使用嗅探器并关联时间戳,我确认调用sendto()和从Android设备发送的数据包之间发生延迟,因此AP或Windows端点中不会发生缓冲

所以在这一点上我只是出于想法.事实会让我相信缓冲是在Android OS层上发生的,但10秒的10Mbps流量呢?对于内存占用非常大的操作系统来说,这似乎太高了.

此外,如果问题是我发送的数据太快并且压倒了操作系统,那么我希望sendto()返回ENOMEM或ENOBUFS …但是没有迹象表明Android应用程序级别出现任何问题.

所以我的问题是:导致这种延迟的原因是什么?有没有办法缓解它,或者我是否需要更改我的应用程序以获得更长的超时或某种方式在它变坏之前检测到这种情况?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值