Java和Android网状/星型网络

时间:2013-02-05 03:45:05

标签: android networking bluetooth mesh

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

目前,我可以发送一个字符串或从主微控制器接收一个字符串,我认为解决我的问题的最佳方法是主微控制器节点只是重复并广播所有的消息其他节点。对于android部分,我想知道这是一个很好的做法,使一个数组包含接收器的id和我想发送的数据。 ID将为8位,数据为字符串。我将int转换为字符串并连接两个字符串以发送我的id +数据。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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