我正在开发一个在ad-hoc网络中进行对等会话的应用程序。当一个对等体想要与其他对等体通信时,它使用自己的ip地址进行连接。一旦设备在点对点网络中相互连接,就会为每个设备分配一个IP地址,但我需要一个较小的字符串( 4-6个字符)作为点对点网络中每个设备的唯一ID。由于这是一个对等网络,没有服务器(可以生成唯一ID),所以生成唯一ID是每个peer自己的责任。我正在寻找一种机制或算法来生成java中的唯一ID。
发布于 2017-04-03 22:06:34
使用每台设备特定于接口的MAC地址可能是最好的解决方案。在标准实施中,MAC地址对于每个网络接口都是唯一的,因此您的每台设备都有一个唯一的编号。您可以直接使用此地址或将其用作种子值来创建派生ID。
发布于 2017-04-03 20:26:00
使用以下代码生成6个字符的随机数
private static SecureRandom random = new SecureRandom();
public static String getUniqueId() {
return new BigInteger(130, random).toString(32).substring(0, 6);
}
https://stackoverflow.com/questions/43183256
复制相似问题