Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.io
インタフェース DatagramConnection

すべてのスーパーインタフェース:
Connection
既知のサブインタフェースの一覧:
UDPDatagramConnection

public interface DatagramConnection
extends Connection

このインタフェースはデータグラム接続が保持すべき能力を定義します。

再確認: CLDC 規格は全く実際のネットワーク・プロトコルの実装を定義しないため、データグラム・アドレス指定のための構文は CLDC 規格では定義しません。 代わって、構文定義は MIDP などの J2ME プロファイルのレベルで行います。

CLDC 参照実装の一部として提供されるサンプル実装において以下のアドレス指定スキームが使用されています:

{protocol}://[{host}]:[{port}]

「クライアント」モードまたは「サーバー」モードでデータグラム接続を開くことができます。 もしも"//{host}"部分が存在しなければ接続は「サーバー」モードでオープンします(「サーバー」モードでクライアント・アプリケーションが通信を開始することを意図しています)。 また"//{host}"部分が提供されるなら、接続は「クライアント」モードでオープンします。

例:

データグラムを受け入れるためのデータグラム接続 datagram://:1234

サーバーへ送信するデータグラム接続 datagram://123.456.789.12:1234

「サーバー・モード(ホスト名の存在しない)」によるポート番号が受信ポートのものであることに注目してください。 「クライアント・モード(ホスト名の存在する)」によるポート番号は目標ポートのものです。 応答ポートはどちらの場合も決して不特定ではありません。 「サーバー・モード」では、同じポート番号を受信と送信の両方で使用します。 「クライアント・モード」では、常に動的に応答ポートを割り当てます。

なお、データグラム・オブジェクトの割り当てが Java Standard Edition(Java SE) より抽象的な手法で済まされていることに注目してください。 具体的な DatagramPacket クラスを提供する代わりに、抽象的な Datagram インタフェースを提供します。 これにより単一のプラットフォームにおいて、同時に複数の異なるデータグラム・インタフェースをサポートすることができます。 DatagramConnection オブジェクトの newDatagram メソッドを呼び出すことによって、データグラム・オブジェクトを割り当てる必要があります。 得られるオブジェクトは Datagram という別のインタフェース型によって定義されます。

導入されたバージョン:
CLDC 1.0

メソッドの概要
 int getMaximumLength()
          データグラムとして送受信可能な最大の長さを返します。
 int getNominalLength()
          データグラムの公称の長さを返します。
 Datagram newDatagram(byte[] buffer, int size)
          指定されたバッファとそのサイズが設定された Datagram オブジェクトを生成します。
 Datagram newDatagram(byte[] buffer, int size, String address)
          指定されたバッファとそのサイズおよび宛先アドレスが設定された Datagram オブジェクトを生成します。
 Datagram newDatagram(int size)
          指定したサイズのバッファを割り当てられた、新しい Datagram オブジェクトを生成します。
 Datagram newDatagram(int size, String address)
          指定したサイズのバッファが割り当てられ、指定した宛先アドレスを持った新しい Datagram オブジェクトを生成します。
 void receive(Datagram data)
          データグラムを受信します。
 void send(Datagram data)
          データグラムを送信します。
 
インタフェース javax.microedition.io.Connection から継承されたメソッド
close
 

メソッドの詳細

getMaximumLength

int getMaximumLength()
                     throws IOException

データグラムとして送受信可能な最大の長さを返します。 最大の長さは newDatagram メソッドを使用することで作成できるデータグラムの最大サイズおよび送受信できるデータグラムの最大サイズを反映します。

戻り値:
送受信可能な最大の長さを返します。
例外:
IOException - 何らかの入出力関連の問題が発生した場合に throw します。

getNominalLength

int getNominalLength()
                     throws IOException

データグラムの公称の長さを返します。 公称の長さはデータ・バッファとして保存されるデータグラムのサイズについて言及します。 公称の長さはデータグラムの最大の長さと等しいか少ないはずです。

戻り値:
公称の長さを返します。
例外:
IOException - 何らかの入出力関連の問題が発生した場合に throw します。

send

void send(Datagram data)
          throws IOException

データグラムを送信します。 データグラム・オブジェクトには送信するデータ、長さ、および受信アドレスを示す情報を含みます。 このメソッドはこのデータグラムによる現在のオフセットから開始する、バイト数による長さのデータを送信します。 ここでいう現在のオフセット(offset)およびバイト数による長さ(length)はデータグラム・オブジェクト内部の状態変数です。

パラメータ:
data - 送信するデータグラムを渡します。
例外:
InterruptedIOException - タイムアウトあるいは未送信のデータが存在した状態で処理が終了した場合に throw します。
IOException - それ以外の入出力関連の問題が発生した場合に throw します。

receive

void receive(Datagram data)
             throws IOException

データグラムを受信します。 このメソッドから処理が戻ると、データグラム・オブジェクトの内部バッファは、オフセット状態変数による位置から開始し、受け取ったデータで満たされます。そして、DataInput インタフェースのメソッドを使用することによって、データを読み出す準備ができています。

このメソッドはデータグラムを受信するまでブロックします。 データグラム・オブジェクト内の状態変数による長さは許容するデータグラムの長さを含みます。 受信データが内部バッファの長さよりも大きいなら、データの終端は欠損します。

このメソッドは Datagram オブジェクト内部の read/write 状況変数を変更しません。 必要とするなら、読み書きを行う前にポインタを変更する Datagram.reset を使用します。

パラメータ:
data - 受信したデータグラムを受け取るオブジェクトを渡します。
例外:
InterruptedIOException - タイムアウトあるいは未受信のデータが存在した状態で処理が終了した場合に throw します。
IOException - それ以外の入出力関連の問題が発生した場合に throw します。

newDatagram

Datagram newDatagram(int size)
                     throws IOException
指定したサイズのバッファを割り当てられた、新しい Datagram オブジェクトを生成します。

パラメータ:
size - 割り当てるバッファのサイズを渡します。
戻り値:
指定されたサイズのバッファを持ったオブジェクトを返します。
例外:
IOException - 入出力関連の問題が発生した場合に throw します。

newDatagram

Datagram newDatagram(int size,
                     String address)
                     throws IOException
指定したサイズのバッファが割り当てられ、指定した宛先アドレスを持った新しい Datagram オブジェクトを生成します。

パラメータ:
size - 割り当てるバッファのサイズを渡します。
address - 宛先アドレスを渡します。
戻り値:
指定されたサイズのバッファを持ち、指定された宛先アドレスが設定されたオブジェクトを返します。
例外:
IOException - 入出力関連の問題が発生した場合に throw します。

newDatagram

Datagram newDatagram(byte[] buffer,
                     int size)
                     throws IOException
指定されたバッファとそのサイズが設定された Datagram オブジェクトを生成します。

パラメータ:
buffer - データグラムで使用するバッファを渡します。
size - データグラムに割り当てるバッファのサイズを渡します。
戻り値:
指定されたバッファとそのサイズが設定されたオブジェクトを返します。
例外:
IOException - 入出力関連の問題が発生した場合に throw します。
IllegalArgumentException - 指定されたサイズが不適切な場合に throw します。

newDatagram

Datagram newDatagram(byte[] buffer,
                     int size,
                     String address)
                     throws IOException
指定されたバッファとそのサイズおよび宛先アドレスが設定された Datagram オブジェクトを生成します。

パラメータ:
buffer - データグラムで使用するバッファを渡します。
size - データグラムに割り当てるバッファのサイズを渡します。
address - 宛先アドレスを渡します。
戻り値:
指定されたバッファとそのサイズが設定されたオブジェクトを返します。
例外:
IOException - 入出力関連の問題が発生した場合に throw します。
IllegalArgumentException - 指定されたサイズが不適切な場合に throw します。

Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

公式仕様書原文の著作権表記等(※):

Mobile Information Device Profile Specification ("Specification")
Version: 2.0
Status: FCS
Release: November 5, 2002

Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc.
All rights reserved.
※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。