goo blog サービス終了のお知らせ 

P2Pとかプログラミング全般とか

P2Pアプリ開発を目指していこうかと。
基本、週末更新なので遅々として進まず。

メッセージを送るには その2

2008-02-11 14:51:23 | Overlay Weaver
実際に送信する方法は、こんな感じ。
まず大本の ow.dht.DHT クラスのインスタンスを dht とすると、
 dht.getRoutingService().getMessageSender().send(dest, msg);
となる。ちょっと長い。

dest は ow.messaging.MessagingAddress インターフェイス。これは
トランスポート層を取り替えられるため。SocketAddress にしちゃうと
インターネット専用になっちゃうから。ま、実質はインターネットが大半だろう
けど。一応、シミュレーション用のアドレス EmuMessagingAddress が用意されて
いるのでインターネット専用ってわけじゃない。
このアドレス、どう作るかというと、ow.messaging.MessagingProvider.getMessagingAddress(java.lang.String hostAndPort) を使う。
 dht.getRoutingService().getMessagingProvider().getMessagingAddress("www.foobar.com:8888");
こんな感じ。
あとは送信されてきたメッセージから取り出す方法もある。
 ow.messaging.Message.getSource().getAddress()

ちなみにこういうのを調べるにも JavaDoc が大活躍。MessagingAddress のページを開いて、
画面上部の「使用」ってリンクを開けば MessagingAddress を使っているメソッド
が一覧で見れる。便利。

これでメッセージを送れるのだが、問題はトランスポート層。どんな方法で送るか、
それが問題で以下続く。