Package org.apache.commons.net.echo

# Class EchoUDPClient

java.lang.Object
org.apache.commons.net.DatagramSocketClient
org.apache.commons.net.discard.DiscardUDPClient
org.apache.commons.net.echo.EchoUDPClient

All Implemented Interfaces:
  `AutoCloseable`

public final class EchoUDPClient extends DiscardUDPClient
The EchoUDPClient class is a UDP implementation of a client for the Echo protocol described in RFC 862. To use the class, just open a local UDP port with `open` and call `send` to send datagrams to the server, then call `receive` to receive echoes. After you're done echoing data, call `close()` to clean up properly.

See Also:
  - `EchoTCPClient`
  - `DiscardUDPClient`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT_PORT`
  The default echo port.

  ### Fields inherited from class org.apache.commons.net.DatagramSocketClient

  `_isOpen_, _socket_, _socketFactory_, _timeout_`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EchoUDPClient()`
  Constructs a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `receive(byte[] data)`
  Same as `receive(data, data.length)`
  `int`
  `receive(byte[] data, int length)`
  Receives echoed data and returns its length.
  `void`
  `send(byte[] data, int length, InetAddress host)`
  Sends the specified data to the specified server at the default echo port.
  `void`
  `send(byte[] data, InetAddress host)`
  Same as `send(data, data.length, host)`

  ### Methods inherited from class org.apache.commons.net.discard.DiscardUDPClient

  `send`

  ### Methods inherited from class org.apache.commons.net.DatagramSocketClient

  `checkOpen, close, getCharset, getCharsetName, getDefaultTimeout, getDefaultTimeoutDuration, getLocalAddress, getLocalPort, getSoTimeout, getSoTimeoutDuration, isOpen, open, open, open, setCharset, setDatagramSocketFactory, setDefaultTimeout, setDefaultTimeout, setSoTimeout, setSoTimeout`

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

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

- ## Field Details

  - ### DEFAULT_PORT

    public static final int DEFAULT_PORT
    The default echo port. It is set to 7 according to RFC 862.
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### EchoUDPClient

    public EchoUDPClient()
    Constructs a new instance.

- ## Method Details

  - ### receive

    public int receive(byte[] data) throws IOException
    Same as `receive(data, data.length)`
    Parameters:
      `data` - the buffer to receive the input
    Returns:
      the number of bytes
    Throws:
      `IOException` - on error

  - ### receive

    public int receive(byte[] data, int length) throws IOException
    Receives echoed data and returns its length. The data may be divided up among multiple datagrams, requiring multiple calls to receive. Also, the UDP packets will not necessarily arrive in the same order they were sent.
    Parameters:
      `data` - the buffer to receive the input
      `length` - of the buffer
    Returns:
      Length of actual data received.
    Throws:
      `IOException` - If an error occurs while receiving the data.

  - ### send

    public void send(byte[] data, InetAddress host) throws IOException
    Same as `send(data, data.length, host)`
    Overrides:
      `send` in class `DiscardUDPClient`
    Parameters:
      `data` - the buffer to send
      `host` - the target host
    Throws:
      `IOException` - if an error occurs
    See Also:
      - `DiscardUDPClient.send(byte[], int, InetAddress, int)`

  - ### send

    public void send(byte[] data, int length, InetAddress host) throws IOException
    Sends the specified data to the specified server at the default echo port.
    Overrides:
      `send` in class `DiscardUDPClient`
    Parameters:
      `data` - The echo data to send.
      `length` - The length of the data to send. Should be less than or equal to the length of the data byte array.
      `host` - The address of the server.
    Throws:
      `IOException` - If an error occurs during the datagram send operation.
    See Also:
      - `DiscardUDPClient.send(byte[], int, InetAddress, int)`