我想发送包含2个int值和一个mac地址的字符串消息。我的意思是这样的:
String loadMessage = String.format("LoadOn %1$d %2$d %3$?", nodeid, sum, macAddress)
macAddress变量是MacAddress类型:org.projectfloodlight.openflow.types.MacAddress
我应该在%3$?
中输入什么?我知道对于整数值,我们使用%d,Mac地址呢?
当接收方收到此消息时,如何拆分该消息以找出mac地址?我的意思是例如要找出一个整数的nodeid值,我们可以执行以下操作:
String[] partss = message.split(" ");
int id = Integer.parseInt(partss[1]);
接收器已获得此字符串,并希望从此字符串中提取macAddress值(就像他/她为整数提取所做的一样)。他该怎么做?
答案 0 :(得分:0)
MacAddress类型将需要某种.toString()方法,以便正确放置在所需的字符串中。否则,您将不得不通过一种将其包含在字符串中的单独方法将其传递给接收器。
如果您可以将您的MAC地址作为字符串传递并在接收端将其拆分并从那里进行解析。如果您要遵循趋势以获取“ nodeid”并将其存储在字符串或int数组中:
字符串数组:
// Assuming partss[3] = "AA:AA:AA:AA:AA:AA"
String[] mac = partss[3].split(":");
直接到int数组:
int[] mac = Arrays.stream(loadMessage[3].split(":"))
.mapToInt(Integer::parseInt).toArray();
否则,您可以直接将其作为字符串,然后在接收端重新创建另一个MacAddress类型。我找不到关于它的任何文档。