How are you setting up the multiple local devices? Here is some sample code I've used before but not thoroughly vetted in terms of a device missing a message.
List<InterfaceAddress> usable = BacnetIpUtils.listUsableBACnetInterfaces(); Assume.assumeTrue(usable.size() > 0); InterfaceAddress address = usable.get(0); String bindAddress = address.getAddress().toString().split("/")[1]; String broadcastAddress = address.getBroadcast().toString().split("/")[1]; //Configure the first network, ensure we set reuse address IpNetwork networkOne = new IpNetworkBuilder() .withLocalBindAddress(bindAddress) .withBroadcast(broadcastAddress, address.getNetworkPrefixLength()) .withLocalNetworkNumber(1).withPort(9000).withReuseAddress(true).build(); Transport transportOne = new DefaultTransport(networkOne); LocalDevice localDeviceOne = new LocalDevice(1, transportOne); IpNetwork networkTwo = new IpNetworkBuilder() .withLocalBindAddress(bindAddress) .withBroadcast(broadcastAddress, address.getNetworkPrefixLength()) .withLocalNetworkNumber(1).withPort(9000).withReuseAddress(true).build(); Transport transportTwo = new DefaultTransport(networkTwo); LocalDevice localDeviceTwo = new LocalDevice(2, transportTwo); localDeviceOne.initialize(); localDeviceTwo.initialize();