Package org.klomp.snark.dht
Interface DHT
- All Known Implementing Classes:
KRPC
public interface DHT
Stub for KRPC
- Since:
- 0.8.4
-
Method Summary
Modifier and TypeMethodDescriptionvoidannounce(byte[] ih, boolean isSeed) Announce to ourselves.voidannounce(byte[] ih, byte[] peerHash, boolean isSeed) Announce somebody else we know about to ourselves.intannounce(byte[] ih, int max, long maxWait, boolean isSeed) Announce to the closest DHT peers.getPeersAndAnnounce(byte[] ih, int max, long maxWait, int annMax, long annMaxWait, boolean isSeed, boolean noSeeds) Get peers for a torrent, and announce to the closest annMax nodes we find.intgetPort()intgetRPort()voidping(Destination dest, int port) Ping.Debug info, HTML formattedintsize()Known nodes, not estimated total network size.voidstop()Stop everything.voidunannounce(byte[] ih) Remove reference to ourselves in the local tracker.
-
Method Details
-
getPort
int getPort()- Returns:
- The UDP query port
-
getRPort
int getRPort()- Returns:
- The UDP response port
-
ping
Ping. We don't have a NID yet so the node is presumed to be absent from our DHT. Non-blocking, does not wait for pong. If and when the pong is received the node will be inserted in our DHT. -
getPeersAndAnnounce
Collection<Hash> getPeersAndAnnounce(byte[] ih, int max, long maxWait, int annMax, long annMaxWait, boolean isSeed, boolean noSeeds) Get peers for a torrent, and announce to the closest annMax nodes we find. Blocking! Caller should run in a thread.- Parameters:
ih- the Info Hash (torrent)max- maximum number of peers to returnmaxWait- the maximum time to wait (ms) must be > 0annMax- the number of peers to announce toannMaxWait- the maximum total time to wait for announces, may be 0 to return immediately without waiting for acksisSeed- true if seed, false if leechnoSeeds- true if we do not want seeds in the result- Returns:
- possibly empty (never null)
-
announce
void announce(byte[] ih, boolean isSeed) Announce to ourselves. Non-blocking.- Parameters:
ih- the Info Hash (torrent)
-
announce
void announce(byte[] ih, byte[] peerHash, boolean isSeed) Announce somebody else we know about to ourselves. Non-blocking.- Parameters:
ih- the Info Hash (torrent)peerHash- the peer's Hash
-
unannounce
void unannounce(byte[] ih) Remove reference to ourselves in the local tracker. Use when shutting down the torrent locally. Non-blocking.- Parameters:
ih- the Info Hash (torrent)
-
announce
int announce(byte[] ih, int max, long maxWait, boolean isSeed) Announce to the closest DHT peers. Blocking unless maxWait <= 0 Caller should run in a thread. This also automatically announces ourself to our local tracker. For best results do a getPeers() first so we have tokens.- Parameters:
ih- the Info Hash (torrent)maxWait- the maximum total time to wait (ms) or 0 to do all in parallel and return immediately.isSeed- true if seed, false if leech- Returns:
- the number of successful announces, not counting ourselves.
-
stop
void stop()Stop everything. -
size
int size()Known nodes, not estimated total network size. -
renderStatusHTML
String renderStatusHTML()Debug info, HTML formatted
-