Package io.vertx.rxjava.core.datagram

## Class DatagramSocket

- java.lang.Object
- - io.vertx.rxjava.core.datagram.DatagramSocket

- All Implemented Interfaces:
    `Measured`

      public class DatagramSocket
      extends Object
      implements Measured

  A datagram socket can be used to send `DatagramPacket`'s to remote datagram servers and receive `DatagramPacket`s .

  Usually you use a datagram socket to send UDP over the wire. UDP is connection-less which means you are not connected to the remote peer in a persistent way. Because of this you have to supply the address and port of the remote peer when sending data.

  You can send data to ipv4 or ipv6 addresses, which also include multicast addresses.

  Please consult the documentation for more information on datagram sockets.

  NOTE: This class has been automatically generated from the `original` non RX-ified interface using Vert.x codegen.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static io.vertx.lang.rx.TypeArg<DatagramSocket>` | `__TYPE_ARG` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DatagramSocket​(DatagramSocket delegate)` |
    `DatagramSocket​(Object delegate)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Future<Void>` | `blockMulticastGroup​(String multicastAddress, String sourceToBlock)` | Block the given address for the given multicast address and notifies the once the operation completes.
    `Future<Void>` | `blockMulticastGroup​(String multicastAddress, String networkInterface, String sourceToBlock)` | Block the given address for the given multicast address on the given network interface and notifies the once the operation completes.
    `Future<Void>` | `close()` | Closes the `DatagramSocket` implementation asynchronous and notifies the handler once done.
    `boolean` | `equals​(Object o)` |
    `DatagramSocket` | `exceptionHandler​(Handler<Throwable> handler)` |
    `DatagramSocket` | `getDelegate()` |
    `DatagramSocket` | `handler​(Handler<DatagramPacket> handler)` |
    `int` | `hashCode()` |
    `boolean` | `isMetricsEnabled()` | Whether the metrics are enabled for this measured object
    `Future<DatagramSocket>` | `listen​(int port, String host)` | Start listening on the given port and host.
    `Future<Void>` | `listenMulticastGroup​(String multicastAddress)` | Joins a multicast group and listens for packets send to it.
    `Future<Void>` | `listenMulticastGroup​(String multicastAddress, String networkInterface, String source)` | Joins a multicast group and listens for packets send to it on the given network interface.
    `SocketAddress` | `localAddress()` | Return the `SocketAddress` to which this `DatagramSocket` is bound.
    `static DatagramSocket` | `newInstance​(DatagramSocket arg)` |
    `Single<Void>` | `rxBlockMulticastGroup​(String multicastAddress, String sourceToBlock)` | Block the given address for the given multicast address and notifies the once the operation completes.
    `Single<Void>` | `rxBlockMulticastGroup​(String multicastAddress, String networkInterface, String sourceToBlock)` | Block the given address for the given multicast address on the given network interface and notifies the once the operation completes.
    `Single<Void>` | `rxClose()` | Closes the `DatagramSocket` implementation asynchronous and notifies the handler once done.
    `Single<DatagramSocket>` | `rxListen​(int port, String host)` | Start listening on the given port and host.
    `Single<Void>` | `rxListenMulticastGroup​(String multicastAddress)` | Joins a multicast group and listens for packets send to it.
    `Single<Void>` | `rxListenMulticastGroup​(String multicastAddress, String networkInterface, String source)` | Joins a multicast group and listens for packets send to it on the given network interface.
    `Single<Void>` | `rxSend​(Buffer packet, int port, String host)` | Write the given `Buffer` to the `SocketAddress`.
    `Single<Void>` | `rxSend​(String str, int port, String host)` | Write the given `String` to the `SocketAddress` using UTF8 encoding.
    `Single<Void>` | `rxSend​(String str, String enc, int port, String host)` | Write the given `String` to the `SocketAddress` using the given encoding.
    `Single<Void>` | `rxUnlistenMulticastGroup​(String multicastAddress)` | Leaves a multicast group and stops listening for packets send to it.
    `Single<Void>` | `rxUnlistenMulticastGroup​(String multicastAddress, String networkInterface, String source)` | Leaves a multicast group and stops listening for packets send to it on the given network interface.
    `Future<Void>` | `send​(Buffer packet, int port, String host)` | Write the given `Buffer` to the `SocketAddress`.
    `Future<Void>` | `send​(String str, int port, String host)` | Write the given `String` to the `SocketAddress` using UTF8 encoding.
    `Future<Void>` | `send​(String str, String enc, int port, String host)` | Write the given `String` to the `SocketAddress` using the given encoding.
    `WriteStream<Buffer>` | `sender​(int port, String host)` | Returns a `WriteStream` able to send to the `SocketAddress`.
    `String` | `toString()` |
    `Future<Void>` | `unlistenMulticastGroup​(String multicastAddress)` | Leaves a multicast group and stops listening for packets send to it.
    `Future<Void>` | `unlistenMulticastGroup​(String multicastAddress, String networkInterface, String source)` | Leaves a multicast group and stops listening for packets send to it on the given network interface.

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### __TYPE_ARG

          public static final io.vertx.lang.rx.TypeArg<DatagramSocket> __TYPE_ARG

  - ### Constructor Detail

    - #### DatagramSocket

          public DatagramSocket​(DatagramSocket delegate)

    - #### DatagramSocket

          public DatagramSocket​(Object delegate)

  - ### Method Detail

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### getDelegate

          public DatagramSocket getDelegate()

      Specified by:
        `getDelegate` in interface `Measured`

    - #### isMetricsEnabled

          public boolean isMetricsEnabled()

      Whether the metrics are enabled for this measured object
      Specified by:
        `isMetricsEnabled` in interface `Measured`
      Returns:
        `true` if metrics are enabled

    - #### send

          public Future<Void> send​(Buffer packet,
                                   int port,
                                   String host)

      Write the given `Buffer` to the `SocketAddress`.
      Parameters:
        `packet` - the `Buffer` to write
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### rxSend

          public Single<Void> rxSend​(Buffer packet,
                                     int port,
                                     String host)

      Write the given `Buffer` to the `SocketAddress`.
      Parameters:
        `packet` - the `Buffer` to write
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### sender

          public WriteStream<Buffer> sender​(int port,
                                            String host)

      Returns a `WriteStream` able to send to the `SocketAddress`.
      Parameters:
        `port` - the port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        the write stream for sending packets

    - #### send

          public Future<Void> send​(String str,
                                   int port,
                                   String host)

      Write the given `String` to the `SocketAddress` using UTF8 encoding.
      Parameters:
        `str` - the `String` to write
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### rxSend

          public Single<Void> rxSend​(String str,
                                     int port,
                                     String host)

      Write the given `String` to the `SocketAddress` using UTF8 encoding.
      Parameters:
        `str` - the `String` to write
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### send

          public Future<Void> send​(String str,
                                   String enc,
                                   int port,
                                   String host)

      Write the given `String` to the `SocketAddress` using the given encoding.
      Parameters:
        `str` - the `String` to write
        `enc` - the charset used for encoding
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### rxSend

          public Single<Void> rxSend​(String str,
                                     String enc,
                                     int port,
                                     String host)

      Write the given `String` to the `SocketAddress` using the given encoding.
      Parameters:
        `str` - the `String` to write
        `enc` - the charset used for encoding
        `port` - the host port of the remote peer
        `host` - the host address of the remote peer
      Returns:
        a future notified once the write completes.

    - #### close

          public Future<Void> close()

      Closes the `DatagramSocket` implementation asynchronous and notifies the handler once done.
      Returns:
        a future notified once the socket is closed

    - #### rxClose

          public Single<Void> rxClose()

      Closes the `DatagramSocket` implementation asynchronous and notifies the handler once done.
      Returns:
        a future notified once the socket is closed

    - #### localAddress

          public SocketAddress localAddress()

      Return the `SocketAddress` to which this `DatagramSocket` is bound.
      Returns:
        the socket address

    - #### listenMulticastGroup

          public Future<Void> listenMulticastGroup​(String multicastAddress)

      Joins a multicast group and listens for packets send to it.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
      Returns:
        a future notified once the operation completes

    - #### rxListenMulticastGroup

          public Single<Void> rxListenMulticastGroup​(String multicastAddress)

      Joins a multicast group and listens for packets send to it.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
      Returns:
        a future notified once the operation completes

    - #### listenMulticastGroup

          public Future<Void> listenMulticastGroup​(String multicastAddress,
                                                   String networkInterface,
                                                   String source)

      Joins a multicast group and listens for packets send to it on the given network interface.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
        `networkInterface` - the network interface on which to listen for packets.
        `source` - the address of the source for which we will listen for multicast packets
      Returns:
        a future notified once the operation completes

    - #### rxListenMulticastGroup

          public Single<Void> rxListenMulticastGroup​(String multicastAddress,
                                                     String networkInterface,
                                                     String source)

      Joins a multicast group and listens for packets send to it on the given network interface.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
        `networkInterface` - the network interface on which to listen for packets.
        `source` - the address of the source for which we will listen for multicast packets
      Returns:
        a future notified once the operation completes

    - #### unlistenMulticastGroup

          public Future<Void> unlistenMulticastGroup​(String multicastAddress)

      Leaves a multicast group and stops listening for packets send to it.
      Parameters:
        `multicastAddress` - the address of the multicast group to leave
      Returns:
        a future notified once the operation completes

    - #### rxUnlistenMulticastGroup

          public Single<Void> rxUnlistenMulticastGroup​(String multicastAddress)

      Leaves a multicast group and stops listening for packets send to it.
      Parameters:
        `multicastAddress` - the address of the multicast group to leave
      Returns:
        a future notified once the operation completes

    - #### unlistenMulticastGroup

          public Future<Void> unlistenMulticastGroup​(String multicastAddress,
                                                     String networkInterface,
                                                     String source)

      Leaves a multicast group and stops listening for packets send to it on the given network interface.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
        `networkInterface` - the network interface on which to listen for packets.
        `source` - the address of the source for which we will listen for multicast packets
      Returns:
        a future notified once the operation completes

    - #### rxUnlistenMulticastGroup

          public Single<Void> rxUnlistenMulticastGroup​(String multicastAddress,
                                                       String networkInterface,
                                                       String source)

      Leaves a multicast group and stops listening for packets send to it on the given network interface.
      Parameters:
        `multicastAddress` - the address of the multicast group to join
        `networkInterface` - the network interface on which to listen for packets.
        `source` - the address of the source for which we will listen for multicast packets
      Returns:
        a future notified once the operation completes

    - #### blockMulticastGroup

          public Future<Void> blockMulticastGroup​(String multicastAddress,
                                                  String sourceToBlock)

      Block the given address for the given multicast address and notifies the once the operation completes.
      Parameters:
        `multicastAddress` - the address for which you want to block the source address
        `sourceToBlock` - the source address which should be blocked. You will not receive an multicast packets for it anymore.
      Returns:
        a future notified once the operation completes

    - #### rxBlockMulticastGroup

          public Single<Void> rxBlockMulticastGroup​(String multicastAddress,
                                                    String sourceToBlock)

      Block the given address for the given multicast address and notifies the once the operation completes.
      Parameters:
        `multicastAddress` - the address for which you want to block the source address
        `sourceToBlock` - the source address which should be blocked. You will not receive an multicast packets for it anymore.
      Returns:
        a future notified once the operation completes

    - #### blockMulticastGroup

          public Future<Void> blockMulticastGroup​(String multicastAddress,
                                                  String networkInterface,
                                                  String sourceToBlock)

      Block the given address for the given multicast address on the given network interface and notifies the once the operation completes.
      Parameters:
        `multicastAddress` - the address for which you want to block the source address
        `networkInterface` - the network interface on which the blocking should occur.
        `sourceToBlock` - the source address which should be blocked. You will not receive an multicast packets for it anymore.
      Returns:
        a future notified once the operation completes

    - #### rxBlockMulticastGroup

          public Single<Void> rxBlockMulticastGroup​(String multicastAddress,
                                                    String networkInterface,
                                                    String sourceToBlock)

      Block the given address for the given multicast address on the given network interface and notifies the once the operation completes.
      Parameters:
        `multicastAddress` - the address for which you want to block the source address
        `networkInterface` - the network interface on which the blocking should occur.
        `sourceToBlock` - the source address which should be blocked. You will not receive an multicast packets for it anymore.
      Returns:
        a future notified once the operation completes

    - #### listen

          public Future<DatagramSocket> listen​(int port,
                                               String host)

      Start listening on the given port and host. The handler will be called when the socket is listening.
      Parameters:
        `port` - the port to listen on
        `host` - the host to listen on
      Returns:
        a future notified once the operation completes

    - #### rxListen

          public Single<DatagramSocket> rxListen​(int port,
                                                 String host)

      Start listening on the given port and host. The handler will be called when the socket is listening.
      Parameters:
        `port` - the port to listen on
        `host` - the host to listen on
      Returns:
        a future notified once the operation completes

    - #### handler

          public DatagramSocket handler​(Handler<DatagramPacket> handler)

    - #### exceptionHandler

          public DatagramSocket exceptionHandler​(Handler<Throwable> handler)

    - #### newInstance

          public static DatagramSocket newInstance​(DatagramSocket arg)