/**
   * Create a send a new UDP packet to the SUT. The packets are buffered till the SUT opens a socket
   * to read them.
   *
   * @param sutAddress
   * @param data
   * @return
   */
  public static boolean sendUdpPacket(
      EvoSuiteLocalAddress sutAddress, EvoSuiteRemoteAddress remoteAddress, byte[] data) {
    if (sutAddress == null) {
      return false;
    }

    // data can be null
    if (data == null) {
      data = new byte[0];
    }

    InetAddress address = null;

    try {
      address = MockInetAddress.getByName(remoteAddress.getHost());
    } catch (UnknownHostException e) {
      return false;
    }

    VirtualNetwork.getInstance()
        .sendPacketToSUT(
            data, address, remoteAddress.getPort(), sutAddress.getHost(), sutAddress.getPort());

    return true;
  }
  /**
   * Create a one-time listener on remote address/port
   *
   * @param remoteServer
   * @return
   */
  public static boolean openRemoteTcpServer(EvoSuiteRemoteAddress remoteServer) {
    if (remoteServer == null) {
      return false;
    }

    RemoteTcpServer server =
        new RemoteTcpServer(
            new EndPointInfo(
                remoteServer.getHost(), remoteServer.getPort(), VirtualNetwork.ConnectionType.TCP));
    VirtualNetwork.getInstance().addRemoteTcpServer(server);

    return true;
  }