Files
i2p.www/www.i2p2/pages/package-client.html

38 lines
2.0 KiB
HTML

{% extends "_layout.html" %}
{% block title %}Client Package{% endblock %}
{% block content %}
<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 separate from the main SDK - in the
mstreaming.jar and streaming.jar)</li>
</ul></p>
<p>The {@link net.i2p.client.I2PSession} implementation itself communicates with
the I2P router by the I2CP (the client protocol).</p>
{% endblock %}