即使启用了NoDelay,Android上的Tcp套接字也不会刷新内容

时间:2019-05-16 07:47:17

标签: android c++ linux tcp posix

我们使用Windows Server和iOS,Windows和Android客户端进行了设置。仅在Android客户端上,即使设置了NoDelay选项,发送请求也会有很大的延迟(最多几秒钟),这是一个问题。

我用Qt / C ++编写了一个测试android应用程序,以便我可以直接使用posix api创建套接字并手动将我们的rpc调用放在一起(该项目使用节俭)。这使我可以缩小实际问题的范围。我每秒触发一次RPC调用,但是在Android设备上,数据不会频繁刷新。意思是我说两到五秒钟后收到了响应。

很明显,我是使用Wireshark将网络流量转储到服务器上的。Tcp Info

看一下它,我们很容易看到重复调用和3秒的随机延迟,而不是在进入神经90和92之间的预期延迟。在我看来,这似乎是平板电脑没有在冲洗缓冲区。 (特别是因为根据我们的质量检查,此问题在Windows和iOS客户端上不会发生。)也许也很重要的是,在不同的android设备上,这些超时的频率差异很大。像素设备非常好,几乎没有表现出这种行为,而在我面前的Galaxy Tab S3上,此问题每分钟发生多次。

设置tcp套接字选项时,我是否忽略了任何内容?或者,对于我可以尝试的方法,您还有其他建议吗?

最好的问候, 迈克尔

更新27.05.2019: 我将平板电脑扎根,还使用了wifi嗅探器。在平板电脑上,包裹/框架已“发送”,但wifi嗅探器未找到它。意味着这可能是平板电脑的驱动程序还是rom的问题?

0 个答案:

没有答案