|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.i2p.client.streaming.impl.I2PSocketManagerFull
public class I2PSocketManagerFull
Centralize the coordination and multiplexing of the local client's streaming. There should be one I2PSocketManager for each I2PSession, and if an application is sending and receiving data through the streaming library using an I2PSocketManager, it should not attempt to call I2PSession's setSessionListener or receive any messages with its .receiveMessage This is what I2PSocketManagerFactory.createManager() returns. Direct instantiation by others is deprecated.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface net.i2p.client.streaming.I2PSocketManager |
---|
I2PSocketManager.DisconnectListener |
Field Summary | |
---|---|
(package private) static PcapWriter |
pcapWriter
|
(package private) static String |
PROP_PCAP
|
Constructor Summary | |
---|---|
I2PSocketManagerFull()
Deprecated. use 4-arg constructor |
|
I2PSocketManagerFull(I2PAppContext context,
I2PSession session,
Properties opts,
String name)
This is what I2PSocketManagerFactory.createManager() returns. |
Method Summary | |
---|---|
void |
addDisconnectListener(I2PSocketManager.DisconnectListener lsnr)
|
I2PSession |
addSubsession(InputStream privateKeyStream,
Properties opts)
|
I2PSocketOptions |
buildOptions()
Create a copy of the current options, to be used in a setDefaultOptions() call. |
I2PSocketOptions |
buildOptions(Properties opts)
Create a modified copy of the current options, to be used in a setDefaultOptions() call. |
I2PSocket |
connect(Destination peer)
Create a new connected socket. |
I2PSocket |
connect(Destination peer,
I2PSocketOptions options)
Create a new connected socket. |
Socket |
connectToSocket(Destination peer)
Like connect() but returns a real Socket, and throws only IOE, for easier porting of apps. |
Socket |
connectToSocket(Destination peer,
int timeout)
Like connect() but returns a real Socket, and throws only IOE, for easier porting of apps. |
void |
destroySocketManager()
Destroy the socket manager, freeing all the associated resources. |
long |
getAcceptTimeout()
|
ConnectionManager |
getConnectionManager()
|
I2PSocketOptions |
getDefaultOptions()
Current options, not a copy, setters may be used to make changes. |
String |
getName()
For logging / diagnostics only |
I2PServerSocket |
getServerSocket()
Returns non-null socket. |
I2PSession |
getSession()
|
ServerSocket |
getStandardServerSocket()
Like getServerSocket but returns a real ServerSocket for easier porting of apps. |
List<I2PSession> |
getSubsessions()
|
void |
init(I2PAppContext context,
I2PSession session,
Properties opts,
String name)
Deprecated. use 4-arg constructor |
boolean |
isDestroyed()
Has the socket manager been destroyed? |
Set<I2PSocket> |
listSockets()
Retrieve a set of currently connected I2PSockets, either initiated locally or remotely. |
boolean |
ping(Destination peer,
int localPort,
int remotePort,
long timeoutMs)
Ping the specified peer, returning true if they replied to the ping within the timeout specified, false otherwise. |
byte[] |
ping(Destination peer,
int localPort,
int remotePort,
long timeoutMs,
byte[] payload)
Ping the specified peer, returning true if they replied to the ping within the timeout specified, false otherwise. |
boolean |
ping(Destination peer,
long timeoutMs)
Ping the specified peer, returning true if they replied to the ping within the timeout specified, false otherwise. |
I2PSocket |
receiveSocket()
The accept() call. |
void |
removeDisconnectListener(I2PSocketManager.DisconnectListener lsnr)
|
void |
removeSubsession(I2PSession session)
Remove the subsession |
void |
setAcceptTimeout(long ms)
How long should we wait for the client to .accept() a socket before sending back a NACK/Close? |
void |
setDefaultOptions(I2PSocketOptions options)
Update the options on a running socket manager. |
void |
setName(String name)
For logging / diagnostics only |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static PcapWriter pcapWriter
static final String PROP_PCAP
Constructor Detail |
---|
public I2PSocketManagerFull()
UnsupportedOperationException
- alwayspublic I2PSocketManagerFull(I2PAppContext context, I2PSession session, Properties opts, String name)
context
- non-nullsession
- non-nullopts
- may be nullname
- non-nullMethod Detail |
---|
public void init(I2PAppContext context, I2PSession session, Properties opts, String name)
I2PSocketManager
init
in interface I2PSocketManager
UnsupportedOperationException
- alwayspublic I2PSocketOptions buildOptions()
buildOptions
in interface I2PSocketManager
public I2PSocketOptions buildOptions(Properties opts)
buildOptions
in interface I2PSocketManager
opts
- The new options, may be nullpublic I2PSession getSession()
getSession
in interface I2PSocketManager
public I2PSession addSubsession(InputStream privateKeyStream, Properties opts) throws I2PSessionException
addSubsession
in interface I2PSocketManager
privateKeyStream
- null for transient, if non-null must have same encryption keys as primary session
and different signing keysopts
- subsession options if any, may be null
I2PSessionException
public void removeSubsession(I2PSession session)
removeSubsession
in interface I2PSocketManager
public List<I2PSession> getSubsessions()
getSubsessions
in interface I2PSocketManager
public ConnectionManager getConnectionManager()
public I2PSocket receiveSocket() throws I2PException, ConnectException, SocketTimeoutException
I2PException
- if session is closed
ConnectException
- (since 0.9.17; I2PServerSocket interface always declared it)
SocketTimeoutException
- if a timeout was previously set with setSoTimeout and the timeout has been reached.public boolean ping(Destination peer, long timeoutMs)
ping
in interface I2PSocketManager
peer
- timeoutMs
- timeout in ms, greater than zero
IllegalArgumentException
public boolean ping(Destination peer, int localPort, int remotePort, long timeoutMs)
ping
in interface I2PSocketManager
peer
- Destination to pinglocalPort
- 0 - 65535remotePort
- 0 - 65535timeoutMs
- timeout in ms, greater than zero
IllegalArgumentException
public byte[] ping(Destination peer, int localPort, int remotePort, long timeoutMs, byte[] payload)
ping
in interface I2PSocketManager
peer
- Destination to pinglocalPort
- 0 - 65535remotePort
- 0 - 65535timeoutMs
- timeout in ms, greater than zeropayload
- to include in the ping
IllegalArgumentException
public void setAcceptTimeout(long ms)
setAcceptTimeout
in interface I2PSocketManager
ms
- milliseconds to wait, maximumpublic long getAcceptTimeout()
getAcceptTimeout
in interface I2PSocketManager
public void setDefaultOptions(I2PSocketOptions options)
setDefaultOptions
in interface I2PSocketManager
options
- as created from a call to buildOptions(properties), non-nullpublic I2PSocketOptions getDefaultOptions()
getDefaultOptions
in interface I2PSocketManager
public I2PServerSocket getServerSocket()
getServerSocket
in interface I2PSocketManager
public ServerSocket getStandardServerSocket() throws IOException
getStandardServerSocket
in interface I2PSocketManager
IOException
public I2PSocket connect(Destination peer, I2PSocketOptions options) throws I2PException, NoRouteToHostException
connect
in interface I2PSocketManager
peer
- Destination to connect tooptions
- I2P socket options to be used for connecting, may be null
NoRouteToHostException
- if the peer is not found or not reachable
I2PException
- if there is some other I2P-related problempublic I2PSocket connect(Destination peer) throws I2PException, NoRouteToHostException
connect
in interface I2PSocketManager
peer
- Destination to connect to
NoRouteToHostException
- if the peer is not found or not reachable
I2PException
- if there is some other I2P-related problempublic Socket connectToSocket(Destination peer) throws IOException
connectToSocket
in interface I2PSocketManager
IOException
public Socket connectToSocket(Destination peer, int timeout) throws IOException
connectToSocket
in interface I2PSocketManager
timeout
- ms if > 0, forces blocking (disables connectDelay)
IOException
public void destroySocketManager()
destroySocketManager
in interface I2PSocketManager
public boolean isDestroyed()
isDestroyed
in interface I2PSocketManager
public Set<I2PSocket> listSockets()
listSockets
in interface I2PSocketManager
public String getName()
getName
in interface I2PSocketManager
public void setName(String name)
setName
in interface I2PSocketManager
public void addDisconnectListener(I2PSocketManager.DisconnectListener lsnr)
addDisconnectListener
in interface I2PSocketManager
public void removeDisconnectListener(I2PSocketManager.DisconnectListener lsnr)
removeDisconnectListener
in interface I2PSocketManager
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |