0

我目前正在开发一个 Android 项目,该项目需要连接到将消息发送到不同节点的蓝牙设备。这意味着我必须将正确的消息传递给适当的节点(许多微控制器)。

目前,我可以从主微控制器发送或接收字符串,我认为解决我的问题的最佳方法是主微控制器节点简单地重复并向所有其他节点广播消息。对于 Android 部分,我想知道创建一个包含接收者 id 和我要发送的数据之后的数组是否是一个好习惯。ID 为 8 位,数据为字符串。在我将 int 转换为字符串并连接两个字符串以发送我的 id+data 之后。

这是解决我的问题的好方法还是有更优雅的方法?

4

1 回答 1

1

将字符串转换为字节并将其全部作为字节数组发送会更有效。严肃的网络协议永远不会使用这样的文本数据。如果你只是在做一个有趣的试验,那没关系。

这是我看到的网格无限指数传播的真正问题。假设我向某人发送消息,然后将其发送给我所有的邻居。他们会把它转发给他们所有的邻居。谁会把它转发给他们所有的邻居。如果图表中有任何循环将导致它被发送回已经看过它的人,谁会再次转发它。而且它永远不会死。除非你没有循环,否则你没有网格,你很脆弱,很可能会碎裂。您需要某种方法来防止重新传输相同的消息 - 可能就像消息 id 字段一样简单,并且不会再次重新传输相同的消息 id。不过,您需要大量的消息编号——比如 128 位 UUID。

于 2013-02-05T03:51:46.303 回答