dim*_*mat 7 sockets streaming webcam udp lte
我开发了一个 C++ 应用程序,用于通过 UDP 从 Odroid 设备上的网络摄像头传输视频。该客户端是一个使用简单 UDP 套接字的 iPhone 应用程序,它可以在 Wi-fi 上完美运行,但不能在 LTE 上运行。sendto() 调用工作正常,但 recvfrom() 永远阻塞。首先,我认为这与 iPhone 阻止 UDP 流量有关,但我也尝试将笔记本电脑上的客户端连接到 iPhone 的热点,从而通过 LTE 连接。您认为电话提供商是否存在阻止 UDP 流量的问题?为了实现更快的流传输,我更喜欢 UDP 而不是 TCP。任何建议将不胜感激!谢谢!
更新:经过进一步检查,我找到了问题的原因。事实证明,UDP over LTE 设置了 IP_MTU_DISCOVER 标志,如果用户的数据包大于设备的 MTU,它不会执行 IP 分段,而只是丢弃数据包。我的应用程序正在发送大于 MTU 的数据包,但在 Wi-fi 情况下,它们在 IP 层中被分段。如果禁用 IP_MTU_DISCOVER 标志,大数据包将被分段并成功到达目的地。另一种选择是从应用程序发送小于 MTU 的数据包。这两种方法的效果都不是很好,但至少谜团被解开了。
| 归档时间: |
|
| 查看次数: |
1993 次 |
| 最近记录: |