gpt4 book ai didi

objective-c - 使用 TCP 套接字发送多条小消息或更短消息的速度更快

转载 作者:可可西里 更新时间:2023-11-01 02:43:03 26 4
gpt4 key购买 nike

我可以在任何地方找到任何文档,并且想知道尽快发送多条消息的最佳方法是什么。

例如,如果我有 300 台设备从一台服务器接收消息,那么发送一条大消息并让设备挑选出它们需要的部分或发送 300 条消息但大小为原来的 1/300 会更好。它们只是小刺,所以 300 个设备每个只能得到 6 个字节

有区别吗?

提前致谢。

最佳答案

如果启用套接字的 Nagle 算法,则通过给定连接发送多条较小的消息通常比通过同一连接发送较少的较大消息要慢。 Nagle 在内部缓冲出站数据,并且必须等待足够的数据被缓冲和/或超时,以便它可以发送有效的消息。对于一般的套接字使用,启用 Nagle 通常是首选,因为它在速度、性能和开销之间提供了大多数应用程序可接受的良好平衡。但是,如果您需要发送时间敏感的消息,那么您通常必须禁用 Nagle,以便尽快单独传输每条消息。

不过,您所描述的将单个消息发送到多个设备的情况对于 TCP 是不可能的。大概每个设备都有自己的直接与服务器的 TCP 连接。要向所有 300 个连接发送一条消息,您必须制作 300 个独立的消息副本,每个连接一个。 TCP 没有广播功能(如果需要,请切换到 UDP 或多播)。发送单个服务器消息并让 300 个设备响应它的唯一方法是,如果设备没有直接连接到服务器,而是通过代理进行通信,该代理维护与服务器的单一连接并将接收到的服务器消息转发给每个设备根据需要。

关于objective-c - 使用 TCP 套接字发送多条小消息或更短消息的速度更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com