net.i2p.i2ptunnel.socks
Class SOCKSUDPPort
java.lang.Object
net.i2p.i2ptunnel.socks.SOCKSUDPPort
- All Implemented Interfaces:
- Sink, Source
public class SOCKSUDPPort
- extends Object
- implements Source, Sink
Implements a UDP port and Socks encapsulation / decapsulation.
This is for a single port. If there is demuxing for multiple
ports, it happens outside of here.
TX:
UDPSource -> SOCKSUDPUnwrapper -> ReplyTracker ( -> I2PSink in SOCKSUDPTunnel)
RX:
UDPSink <- SOCKSUDPWrapper ( <- MultiSink <- I2PSource in SOCKSUDPTunnel)
The Unwrapper passes headers to the Wrapper through a cache.
The ReplyTracker passes sinks to MultiSink through a cache.
- Author:
- zzz
Method Summary |
int |
getPort()
Socks passes this back to the client on the TCP connection |
void |
send(Destination from,
byte[] data)
May throw RuntimeException from underlying sink |
void |
setSink(Sink sink)
|
void |
start()
|
void |
stop()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SOCKSUDPPort
public SOCKSUDPPort(InetAddress host,
int port,
Map<Destination,SOCKSUDPPort> replyMap)
getPort
public int getPort()
- Socks passes this back to the client on the TCP connection
setSink
public void setSink(Sink sink)
- Specified by:
setSink
in interface Source
start
public void start()
- Specified by:
start
in interface Source
stop
public void stop()
send
public void send(Destination from,
byte[] data)
- May throw RuntimeException from underlying sink
- Specified by:
send
in interface Sink
- Parameters:
from
- some implementations may ignore
- Throws:
RuntimeException