first pass

This commit is contained in:
jrandom
2004-07-20 21:08:04 +00:00
committed by zzz
parent ccb2600e67
commit b5a0f5910d
3 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,15 @@
<html><body>
<p>Provides a standard way for reading and writing messages transferred over I2P
so that the recipient has an authenticated mechanism to reply to it. This is
necessary because the base I2P message sent through {@link net.i2p.client.I2PSession#sendMessage}
has no "from" address, and simply providing a raw "from" address would be
insecure as it could be spoofed. An application that needs to know for certain
who sent a message to them should use the {@link net.i2p.client.datagram.I2PDatagramDissector}
to parse the raw message received from the {@link net.i2p.client.I2PSession}, and
in turn, use the {@link net.i2p.client.datagram.I2PDatagramMaker} to build a
message that can be parsed. </p>
<p>The datagram format implemented here includes
the sender's {@link net.i2p.data.Destination}, the payload, and a hash of the
payload (signed by the sender's {@link net.i2p.data.SigningPrivateKey}).</p>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>
<p>Provides a standard way for querying the local naming service to resolve a
name into a {@link net.i2p.data.Destination} (without the complexity of JNDI).
The default implementation is a simple hosts.txt driven system, though that can
be overridden by specifying the "i2p.naming.impl" environment property to point
at the requested classname.</p>
</body></html>

View File

@ -0,0 +1,32 @@
<html><body>
<p>Implements the base I2P SDK for developing applications that communicate
through I2P.</p>
<p>When a client application wants to communicate over I2P, the first thing it
needs to do is get a {@link net.i2p.client.I2PClient} from the
{@link net.i2p.client.I2PClientFactory}. If it does not already have a {@link
net.i2p.data.Destination}, it must generate one with the {@link
net.i2p.client.I2PClient#createDestination} before proceeding. Once it has
one, it then creates an {@link net.i2p.client.I2PSession} which serves as the
bridge to the I2P network, allowing it to send messages (via
{@link net.i2p.client.I2PSession#sendMessage}) and receive messages (via
{@link net.i2p.client.I2PSession#receiveMessage}). In addition, the client
receives asynchronous notification of network activity by providing an implementation
of {@link net.i2p.client.I2PSessionListener}. </p>
<p>A simple example of how these base client classes can be used is the
{@link net.i2p.client.ATalk} application. It isn't really useful, but it is
heavily documented code.</p>
<p>This client package provides the basic necessity for communicating over I2P,
but there are three other subpackages that are helpful. Specifically:<ul>
<li>{@link net.i2p.client.datagram} - for applications that want their messages
to be both authenticated and repliable</li>
<li>{@link net.i2p.client.naming} - for applications that want to resolve
readable names into {@link net.i2p.data.Destination}s</li>
<li>{@link net.i2p.client.streaming} - for applications that want to use
a streaming API to provide reliable in order message delivery (<b>note</b>:
the streaming library is packaged seperate from the main SDK - in the
ministreaming.jar)</li>
</ul></p>
</body></html>