示例#1
0
  /** Performs the probe asynchronously. */
  private void sendProbe() {
    final NameServicesChannelMessage message = new NameServicesChannelMessage();

    message.agent = Nodel.getAgent();

    List<String> discoveryList = new ArrayList<String>(1);
    discoveryList.add("*");

    List<String> typesList = new ArrayList<String>(2);
    typesList.add("tcp");
    typesList.add("http");

    message.discovery = discoveryList;
    message.types = typesList;

    _lastProbe.set(System.nanoTime());

    // IO is involved so use a thread-pool
    _threadPool.execute(
        new Runnable() {

          @Override
          public void run() {
            sendMessage(_sendSocket, s_sendSocketLabel, _groupSocketAddress, message);

            // check if hard links (direct "multicasting") are enabled for some hosts
            if (_hardLinksAddresses != null && _hardLinksSocket != null) {
              for (InetSocketAddress socketAddress : _hardLinksAddresses) {
                sendMessage(_hardLinksSocket, s_hardLinksSocketlabel, socketAddress, message);
              }
            }
          }
        });
  }