【问题标题】:Android to Windows tcp-communication delayAndroid 到 Windows tcp 通信延迟
【发布时间】:2015-09-16 08:13:38
【问题描述】:

我开发了一个 android 客户端应用程序和一个 windows c++ 服务器应用程序,它们与本地网络中的 tcp/ip 通信。

数据交换在我的笔记本电脑上运行良好(win 8,通过 wifi 连接到网络)。 在我的第二台电脑(win 7)上,传入的消息被收集并以大约 20 条消息的形式转发到我的应用程序。因此,我每秒只能获得大约两次当前传感器数据的更新(在笔记本电脑上大约每秒 30 次)。

电脑和安卓手机在同一个局域网中。网络中没有其他设备,也没有连接到互联网。我已经为第二台电脑尝试了 wifi 连接和 lan 连接,没有明显差异。 我认为任何 Windows 7 设置都会导致此行为。

【问题讨论】:

  • 也可能是您的网卡/驱动程序,由于 CPU/内存/来自其他应用程序的负载等原因导致 PC 速度较慢。这有关系吗?您收到的更新可能会延迟半秒而不是百分之三 - 用户会关心吗?
  • 智能手机用作输入设备,在计算机上导航 3D 环境(使用 android 重力传感器的数据)。大约 30 次更新/秒,这感觉很好,2 次更新/秒您总是在更改智能手机方向后等待响应。第二台电脑的硬件比笔记本电脑好,第二台电脑的wifi棒有问题,而笔记本电脑在连接同一个棒时没有问题。没有其他程序正在运行。
  • 是否启用了nagling?禁用它。
  • 哇,禁用 nagling 有帮助!谢谢你,完美:)

标签: c++ windows sockets networking tcp


【解决方案1】:

您正在使用 nagling 批量小发送 200 毫秒。禁用它,但要确保一次发送大块。现在,每个 send 调用都会立即进入网络。

【讨论】:

    猜你喜欢
    • 2017-05-22
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多