- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一个远程应用程序。服务器将实时处理和渲染数据作为动画。 (准确地说,是一系列图像)每次渲染图像时,都会通过 UDP 将图像传输到接收 iPhone 客户端。
我研究了一些UDP,我知道以下几点:
UDP 的最大大小约为 65k。
但是,iPhone似乎只能接收41k UDP数据包。 iPhone 似乎无法接收大于此的数据包。
发送多个数据包时,许多数据包被丢弃。这是由于 UDP 处理规模过大造成的。
减小数据包大小会增加未丢弃的数据包数量,但这意味着需要发送更多数据包。
我以前从未编写过真正实用的 UDP 应用程序,因此我需要一些指导来实现高效的 UDP 通信。在本例中,我们讨论的是从服务器实时传输渲染图像以在 iPhone 上显示。
压缩数据似乎是强制性的,但在这个问题中,我想重点关注 UDP 部分。通常情况下,我们在实现UDP应用时,如果需要实时不间断地发送大量数据,那么如何才能实现高效UDP编程的最佳实践呢?
最佳答案
假设您有一个非常具体且充分的理由使用 UDP,并且您需要所有数据到达(即您不能容忍任何数据丢失),那么您需要做以下几件事:需要做的(这假设是一个单播应用程序):
此外,您的发送速度可能太快,以至于您在发送计算机上内部丢弃数据包,甚至没有将它们从 NIC 传到线路上。在某些系统上,在发送套接字上调用 select for write-ablity 可以帮助解决此问题。此外,在 UDP 套接字上调用 connect 可以提高性能,从而减少丢包。
基本上,如果您需要保证数据按顺序传送,那么您将在 UDP 之上重新实现 TCP。如果您使用 UDP 的唯一原因是延迟,那么您可以使用 TCP 并禁用 Nagle Algorithm 。如果您想要具有可靠的低延迟传输的分组数据,另一种可能性是 SCTP ,同样禁用 Nagle。它还可以提供无序交付以进一步加快速度。
我会推荐 Steven 的“Unix Network Programming”,其中有一节介绍高级 UDP 以及何时适合使用 UDP 而不是 TCP。作为说明,他建议不要使用 UDP 进行批量数据传输,尽管现实情况是,如今对于流媒体多媒体应用程序来说,这种情况变得越来越普遍。
关于iphone - 通过 UDP 从服务器向 iPhone 发送大量实时处理的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2388514/
我刚刚了解了 udp 校验和计算。 但我很困惑算法是否检测到所有错误。 最佳答案 当然不是。没有校验和可以检测到所有错误。 关于udp - UDP 校验和是否检测到所有错误?,我们在Stack Ove
下面这个函数有什么问题?? 它应该抛出错误,因为我没有在本地主机上运行 UDP 服务器。 int openUdpSocket(int port) { int sock,sin_size;
我正在尝试修改这两个程序。我想让 udpclient.c 能够接收消息并让 udpserver.c 将消息回显给客户端。我还想在 udpclient 发送消息之前先获取它们的时间标记消息。收到的消息应
我有相当简单的 UDP 服务器写在 c 上。 有时我需要知道在套接字中排队的所有 udp 数据包(字节)的当前长度。 据我了解,getsockopt 没有得到这样的信息。 欢迎使用 Linux 和 F
除了直播音乐/视频外,谁能告诉在哪里使用 UDP 协议(protocol)? UDP 的默认用例是什么? 最佳答案 其他任何您需要性能但如果数据包在途中丢失时可以生存的东西。例如,多人游戏浮现在脑海中
与 TCP 的监视方法相反,UDP 是否会在所有数据包可用时立即发送它们? 谢谢。 最佳答案 TCP 有拥塞控制,UDP 没有,因为它是无连接的。 但是您的问题涉及多个问题:发送消息是否会导致立即发送
我知道 UDP 本质上是不可靠的,但是当连接到 localhost 时,我希望内核以不同的方式处理连接,因为一切都可以在内部处理。那么在这种特殊情况下,UDP 是否被认为是一种可靠的协议(protoc
我正在尝试使用 flash 和 rtmfp 协议(protocol)开发一个实时视频聊天应用程序,但我有疑问rtmfp 如何保证连接对等点,尤其是当对等点位于不同网络时。 最佳答案 RTMFP 依靠中
我发现所有使用 Netty 4.0 的 TCP 服务器实现都使用了 ServerBootstrap 实例。 The biggest and only difference between a serv
对于个人 MMO 游戏项目,我正在 java 中实现一个自制的可靠的基于 UDP 的协议(protocol)。鉴于我当前的设置,我相信窥探者劫持 session 相对简单,因此为了防止这种情况,我借此
我正在尝试手动计算各种 UDP 数据包的校验和,但与 Wireshark 中显示的结果相比,我总是得到错误的结果。下面是我如何做到这一点的示例: Source Address: 192.168.0.1
我正在尝试手动计算各种 UDP 数据包的校验和,但与 Wireshark 中显示的结果相比,我总是得到错误的结果。下面是我如何做到这一点的示例: Source Address: 192.168.0.1
我有一个奇怪的问题。我有一个成功运行的 C++ (boost asio) P2P 应用程序,它可以在大多数 NAT 上运行。问题是,当我将初始启动端口号指定为 1000 时,它会检查 1000 是否空
带有数据源的短 radio 链路,需要通过 IPv6 的 1280 Kbps 吞吐量,使用 UDP 停止和等待协议(protocol),该区域内没有其他客户端或明显的噪声源。我到底如何才能计算出最佳数
似乎可以在没有有效负载的情况下发送 UDP 数据包。 我能想到的唯一不需要有效载荷的就是用于 NAT 打洞。 这还能用来做什么? 这与我之前的问题有关Under Linux, can recv eve
我有一个客户端,我无法更改其代码 - 但我想(重新)使用 编写代码ZeroMQ socket 。 客户端同时使用原始 TCP 和原始 UDP socket 。 我知道我可以使用 ZMQ_ROUTER_
网络 4.0.24 我通过 UDP 传递 XML。收到 UPD 数据包时,数据包的长度始终为 2048,截断消息。尽管如此,我尝试将接收缓冲区大小设置为更大的值(4096、8192、65536),但它
我正在尝试编写一个有关 UDP 连接的简单程序来了解它们。我已经实现了一些基本的事情,但是当我尝试发送并取回我发送的内容时,我遇到了一些问题,例如, 当我这样做时;发送一个字符串 “asd”到服务器我
当我检查时,我在 UDP 客户端每 100 毫秒从服务器发送 UDP 数据包 接收频率不等于 100 毫秒,有时它要少得多,例如 3 毫秒…10 毫秒。 我知道UDP client server是异步
海友我是一个学习winsock2的新手。以下是我的udp服务器和客户端程序。 我这个程序客户端不知道服务器的IP地址,只知道端口。但是服务器会在整个网络中广播一条消息。 当客户端收到消息时,它会回溯服
我是一名优秀的程序员,十分优秀!