Class I2PTunnelUDPClientBase

  • All Implemented Interfaces:
    Sink, Source, EventDispatcher
    Direct Known Subclasses:
    SOCKSUDPTunnel, StreamrConsumer

    public abstract class I2PTunnelUDPClientBase
    extends I2PTunnelTask
    implements Source, Sink
    Base client class that sets up an I2P Datagram client destination. The UDP side is not implemented here, as there are at least two possibilities: 1) UDP side is a "server" Example: Streamr Consumer - Configure a destination host and port - External application sends no data - Extending class must have a constructor with host and port arguments 2) UDP side is a client/server Example: SOCKS UDP (DNS requests?) - configure an inbound port and a destination host and port - External application sends and receives data - Extending class must have a constructor with host and 2 port arguments So the implementing class must create a UDPSource and/or UDPSink, and must call setSink().
    Author:
    zzz with portions from welterde's streamr
    • Method Detail

      • startRunning

        public void startRunning()
        Actually start working on outgoing connections. Classes should override to start UDP side as well. Not specified in I2PTunnelTask but used in both I2PTunnelClientBase and I2PTunnelServer so let's implement it here too.
      • close

        public boolean close​(boolean forced)
        I2PTunnelTask Methods Classes should override to close UDP side as well
        Specified by:
        close in class I2PTunnelTask
        Returns:
        success
      • setSink

        public void setSink​(Sink s)
        Source Methods Sets the receiver of the UDP datagrams from I2P Subclass must call this after constructor and before start()
        Specified by:
        setSink in interface Source
      • start

        public void start()
        start the source
        Specified by:
        start in interface Source
      • send

        public void send​(Destination to,
                         byte[] data)
        Sink Methods
        Specified by:
        send in interface Sink
        Parameters:
        to - - ignored if configured for a single destination (we use the dest specified in the constructor)
        Throws:
        RuntimeException - if session is closed