【问题标题】:packet size limit for iPhone games?iPhone游戏的数据包大小限制?
【发布时间】:2012-05-03 23:12:12
【问题描述】:

我正在使用以下链接http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12中的多人教程作为骨架创建一个多人iPhone游戏。

在我使用的架构(GameCentre 点对点)中,其中一个设备扮演服务器的角色。我有一个问题,数据包大小的限制是什么?平均而言,我每次需要发送 890 个字节...

【问题讨论】:

  • 你可以发送相当大的数据包,但你应该关注速度。当快速通信在游戏中很重要时,发送一个大数据包需要更长的时间。一般来说,如果你的数据包在游戏中变得太大,你可以将它分成更小的数据包,每个数据包都有自己的基本数据。
  • 您好,感谢您的回复,所以根据大数据包的定义,1k 的数据包是否相当大?
  • 1k 字节?那么像1 kB?如果您每秒发送 30 个数据包,那么就连接速度而言,双向约为 240 kb,因此这实际上取决于目标受众。无论是通过本地、WAN、3G 等,它都会有很大的不同。但对我来说,这是相当大的。这相当于每帧大约 250 个浮点值或超过 100 个 XY 位置。确保您发送的所有内容都是必不可少的。如果您要发送计算或某种逻辑事物,请尝试标准化其行为并发送一个单字节标志,说明“发生了这种情况”并在客户端执行任何计算。
  • 好吧,我已经减少了它,以便仅在调用 touchEnd 时发送数据包,但我明白你的意思,最好尽可能少发送 - 谢谢老兄!

标签: iphone objective-c game-center multiplayer


【解决方案1】:

通常您不应依赖网络数据包的大小。数据包可以分段(通过 TCP/IP 并由堆栈重新组装)或数据根据发送/接收参数的 MTU 打包。

【讨论】:

  • 感谢您的回复,我担心是否存在大小阈值,如果超出的数据将不会在另一端接收?
  • 并非如此。您的数据将由网络堆栈打包并在另一端重建。你不必做任何事情。唯一的限制是带宽,因为手机可能位于接收不良的地方。只需确保正确处理错误即可。
【解决方案2】:

根据Game Kit Programming Guide:

  • 将不可靠消息的大小限制为 1000 字节或更小。
  • 将可靠消息的大小限制为 87 KB 或更小。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多