我正在使用几个模拟器,并试图创建一个插件,它将管理模拟器之间网络上的数据流(这样一个模拟器通过网络发送的数据量就会赢得&#39 ;淹没另一个模拟器并导致其崩溃 - 它将尝试显示通过网络发送的任何可以读取的信息。)
系统目前的工作方式是其中一个模拟器将打包'关于模拟中每个实体的所有信息,并在单个PDU中发送与每个实体有关的所有信息。另一个模拟器是“听”'对网络上的流量,以及任何时候它听到的' PDU是一种可读格式,它将在模拟中显示实体,具体取决于PDU中提供的信息。
我有一个程序正在接收通过网络发送的所有PDU(每秒有数千个)。 PDU保持符号'并且每个符号与枚举匹配,枚举包含第二模拟器在其模拟中显示它所需的信息。符号按以下格式映射到.config文件中:
SFGPEVATH------G = 1 1 224 1 2 2 0
' ='左边的所有内容是第一个模拟器发送给实体的表示,以及' ='右边的所有内容。是第二个模拟器在模拟中显示该实体的接收。
当收到PDU时,我使用getString()
方法获取它所持有的数据,并将symbol
作为参数传递,即
String enumeration = RESOURCE_BUNDLE.getString(symbol);
然后我创建一个新实体(将在第二个模拟器中显示:
EntityType entityType = new EntityType():
接下来,我正在拆分我刚从网络收到的enumeration
字符串,以便我可以创建具有相应枚举的实体,以便在第二个模拟器中显示:
String[] parts = enumeration.split("=");
String symbolCode = parts[0];
String symbolEnumeration = parts[1];
并将枚举拆分为单独的值:
String[] enumerationParts = symbolEnumeration.split(" ");
然后,我使用“'符号”中收到的值设置在第二次模拟中显示实体所需的所有值。由第一次模拟发送,我刚刚保存在enumerationParts
ArrayList:
entityType.setDomain(Short.parseShort(enumerationParts[1]));
entityType.setCountry(Short.parseShort(enumerationParts[2]));
...
总而言之,我在这里使用enumerationParts
ArrayList的元素设置了8个值。
我想知道的是,我现在如何将EntityType对象entityType
捆绑/打包成一个PDU,它将我的各种属性设置为值,并将其发送到不同的网络到我收到所有PDU的网络。