code: @SuppressWarnings("SameParameterValue")
      private void assembleAndSendPacket(Util.PacketType kind, byte[] payload, InetAddress destination, int port) throws IOException {
          DatagramPacket packet = Util.buildPacket(kind,
                  ByteBuffer.wrap(announcementBytes, DEVICE_NAME_OFFSET, DEVICE_NAME_LENGTH).asReadOnlyBuffer(),
                  ByteBuffer.wrap(payload));
          packet.setAddress(destination);
          packet.setPort(port);
          socket.get().send(packet);
      }
docs: Finish the work of building and sending a protocol packet.
  
  @param kind the type of packet to create and send
  @param payload the content which will follow our device name in the packet
  @param destination where the packet should be sent
  @param port the port to which the packet should be sent
  
  @throws IOException if there is a problem sending the packet