org.apache.jmeter.protocol.http.proxy

## Class Daemon

- java.lang.Object
- - java.lang.Thread
  - - org.apache.jmeter.protocol.http.proxy.Daemon

- All Implemented Interfaces:
    Runnable, Stoppable

      public class Daemon
      extends Thread
      implements Stoppable

  Web daemon thread. Creates main socket on port configured port (8888 by default) and listens on it forever. For each client request, creates a Proxy thread to handle the request.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.lang.Thread

      `Thread.State, Thread.UncaughtExceptionHandler`

  - ### Field Summary

    - ### Fields inherited from class java.lang.Thread

      `MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Daemon(int port, ProxyControl target)` Create a new Daemon with the specified port and target.
    `Daemon(int port, ProxyControl target, Class<? extends Proxy> proxyClass)` Create a new Daemon with the specified port and target, using the specified class to handle individual requests.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `run()` Listen on the daemon port and handle incoming requests.
    `void` | `stopServer()` Stop the proxy daemon.

    - ### Methods inherited from class java.lang.Thread

      `activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Daemon

          public Daemon(int port,
                        ProxyControl target)
                 throws IOException

      Create a new Daemon with the specified port and target.
      Parameters:
        `port` - the port to listen on.
        `target` - the target which will receive the generated JMeter test components.
      Throws:
        `IOException` - if an I/O error occurs opening the socket
        `IllegalArgumentException` - if `port` is outside the allowed range from `0` to `65535`
        `SocketException` - when something is wrong on the underlying protocol layer

    - #### Daemon

          public Daemon(int port,
                        ProxyControl target,
                        Class<? extends Proxy> proxyClass)
                 throws IOException

      Create a new Daemon with the specified port and target, using the specified class to handle individual requests.
      Parameters:
        `port` - the port to listen on.
        `target` - the target which will receive the generated JMeter test components.
        `proxyClass` - the proxy class to use to handle individual requests. This class must be the `Proxy` class or a subclass.
      Throws:
        `IOException` - if an I/O error occurs opening the socket
        `IllegalArgumentException` - if `port` is outside the allowed range from `0` to `65535`
        `SocketException` - when something is wrong on the underlying protocol layer

  - ### Method Detail

    - #### run

          public void run()

      Listen on the daemon port and handle incoming requests. This method will not exit until `stopServer()` is called or an error occurs.
      Specified by:
        `run` in interface `Runnable`
      Overrides:
        `run` in class `Thread`

    - #### stopServer

          public void stopServer()

      Stop the proxy daemon. The daemon may not stop immediately. see #ACCEPT_TIMEOUT
      Specified by:
        `stopServer` in interface `Stoppable`

Copyright © 1998-2022 Apache Software Foundation. All Rights Reserved.