我正在开发ad-hoc网络中的对等对话应用程序。当一个对等体想要与其他对等体通信时,它使用其ip地址进行连接。 一旦设备在Ad-hoc网络中相互连接,就会为每个设备分配一个IP地址,但我需要一个较小的字符串(4-6个字符)作为ad-hoc网络中每个设备的唯一ID 。由于这是对等网络,因此没有服务器(可以生成唯一ID),因此每个对等方自己负责生成唯一ID。我正在寻找一种机制或算法来生成java中的唯一ID。
答案 0 :(得分:1)
这可能最好通过使用每个设备的接口特定MAC地址来解决。在标准实现中,MAC地址对于每个网络接口都是唯一的,因此每个设备都具有唯一的编号。您可以直接使用此地址或作为种子值来创建派生ID。
答案 1 :(得分:0)
使用以下代码生成包含6个字符的随机数
private static SecureRandom random = new SecureRandom();
public static String getUniqueId() {
return new BigInteger(130, random).toString(32).substring(0, 6);
}