code: protected void handleTCPSrvTypeRqst(SrvTypeRqst srvTypeRqst, Socket socket)
      {
          // Match scopes, RFC 2608, 11.1
          if (!scopes.weakMatch(srvTypeRqst.getScopes()))
          {
              tcpSrvTypeRply.perform(socket, srvTypeRqst, SLPError.SCOPE_NOT_SUPPORTED);
              return;
          }
  
          List<ServiceType> serviceTypes = matchServiceTypes(srvTypeRqst);
  
          if (logger.isLoggable(Level.FINE))
              logger.fine("DirectoryAgent " + this + " returning service types " + serviceTypes);
          tcpSrvTypeRply.perform(socket, srvTypeRqst, serviceTypes);
      }
docs: Handles a unicast TCP SrvTypeRqst message arrived to this directory agent.
  <br />
  This directory agent will reply with an SrvTypeRply containing the service types.
  
  @param srvTypeRqst the SrvTypeRqst message to handle
  @param socket      the socket connected to the client where to write the reply