【发布时间】:2018-04-26 21:51:33
【问题描述】:
我有几个问题,但 SO 的做法是不要一次问多个,所以我会放相同的介绍并按逻辑顺序编号。
我正在编写一个与 .NET Win-service 通信的商业应用程序。目标受众是在有 Wi-Fi 覆盖的建筑物中工作的员工。该应用程序用于通知某些最终需要接收者接受或拒绝的事件(因此传输必须是双向的)。
我已经通过 TCP 实现了设备注册,然后切换到 UDP 数据通道。 在架构上,有一个启动 Application 类(需要配置一些全局设置),它反过来打开 LogIn 活动,成功注册后打开 Main 活动。启动时,Main 启动一个前台服务 (CommSvc),该服务启动 UDP-comm 线程。
我正在使用 VisualStudio 2017 15.5.4、Xamarin 4.8.0.757、Xamarin.Android SDK - 8.1.3.0 进行开发。
我的测试设备是 2 部手机 LG Nexus 4 (Android 4.3, API 18), BLU Vivo 5 Mini (6.0, 23),
和三星 SM-T377V (6.0.1, 23) 平板电脑,我正在考虑升级到 7.0。
第一季度。我们的内部网络工程师估计,使用 TCP 将导致移动无线电更快地耗尽电池电量(与 UDP 相比)。 真的是这样吗?
TCP 保证字节流的有序传输(假设设备保持在范围内)。 UDP 数据包可能会丢失,因此需要某种 ACK-and-retransmit-on-failure 协议。
由于通道的 Wi-Fi 特性,永远无法保证发送的数据包到达目标设备(例如,超出范围),因此 无论如何都需要 ACK-and-retransmit 协议什么,我说得对吗? (有责任方面)
【问题讨论】:
标签: tcp udp android-wifi battery