Class UDPEndpoint

java.lang.Object
net.i2p.router.transport.udp.UDPEndpoint
All Implemented Interfaces:
SocketListener

class UDPEndpoint
extends Object
implements SocketListener
Coordinate the low-level datagram socket, creating and managing the UDPSender and UDPReceiver.
  • Constructor Details

    • UDPEndpoint

      public UDPEndpoint​(RouterContext ctx, UDPTransport transport, int listenPort, InetAddress bindAddress)
      Parameters:
      transport - may be null for unit testing ONLY
      listenPort - -1 or the requested port, may not be honored
      bindAddress - null ok
  • Method Details

    • startup

      public void startup() throws SocketException
      Caller should call getListenPort() after this to get the actual bound port and determine success . Can be restarted.
      Throws:
      SocketException
    • shutdown

      public void shutdown()
    • setListenPort

      public void setListenPort​(int newPort)
    • getListenPort

      public int getListenPort()
      call after startup() to get actual port or -1 on startup failure
    • getSender

      public UDPSender getSender()
    • send

      public void send​(UDPPacket packet)
      Add the packet to the outobund queue to be sent ASAP (as allowed by the bandwidth limiter) BLOCKING if queue is full.
    • receive

      public UDPPacket receive()
      Blocking call to receive the next inbound UDP packet from any peer. UNIT TESTING ONLY. Direct from the socket. In normal operation, UDPReceiver thread injects to PacketHandler queue.
      Returns:
      null if we have shut down, or on failure
    • clearOutbound

      public void clearOutbound()
      Clear outbound queue, probably in preparation for sending destroy() to everybody.
      Since:
      0.9.2
    • isIPv4

      public boolean isIPv4()
      Returns:
      true for wildcard too
      Since:
      IPv6
    • isIPv6

      public boolean isIPv6()
      Returns:
      true for wildcard too
      Since:
      IPv6
    • fail

      public void fail()
      Specified by:
      fail in interface SocketListener
      Since:
      0.9.16
    • toString

      public String toString()
      Overrides:
      toString in class Object
      Since:
      0.9.16