|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface DatagramConnection
このインタフェースはデータグラム接続が保持すべき能力を定義します。
再確認: 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
という別のインタフェース型によって定義されます。
メソッドの概要 | |
---|---|
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 |
メソッドの詳細 |
---|
int getMaximumLength() throws IOException
データグラムとして送受信可能な最大の長さを返します。
最大の長さは newDatagram
メソッドを使用することで作成できるデータグラムの最大サイズおよび送受信できるデータグラムの最大サイズを反映します。
IOException
- 何らかの入出力関連の問題が発生した場合に throw します。int getNominalLength() throws IOException
データグラムの公称の長さを返します。 公称の長さはデータ・バッファとして保存されるデータグラムのサイズについて言及します。 公称の長さはデータグラムの最大の長さと等しいか少ないはずです。
IOException
- 何らかの入出力関連の問題が発生した場合に throw します。void send(Datagram data) throws IOException
データグラムを送信します。 データグラム・オブジェクトには送信するデータ、長さ、および受信アドレスを示す情報を含みます。 このメソッドはこのデータグラムによる現在のオフセットから開始する、バイト数による長さのデータを送信します。 ここでいう現在のオフセット(offset)およびバイト数による長さ(length)はデータグラム・オブジェクト内部の状態変数です。
data
- 送信するデータグラムを渡します。
InterruptedIOException
- タイムアウトあるいは未送信のデータが存在した状態で処理が終了した場合に throw します。
IOException
- それ以外の入出力関連の問題が発生した場合に throw します。void receive(Datagram data) throws IOException
データグラムを受信します。
このメソッドから処理が戻ると、データグラム・オブジェクトの内部バッファは、オフセット状態変数による位置から開始し、受け取ったデータで満たされます。そして、DataInput
インタフェースのメソッドを使用することによって、データを読み出す準備ができています。
このメソッドはデータグラムを受信するまでブロックします。 データグラム・オブジェクト内の状態変数による長さは許容するデータグラムの長さを含みます。 受信データが内部バッファの長さよりも大きいなら、データの終端は欠損します。
このメソッドは Datagram
オブジェクト内部の read/write 状況変数を変更しません。
必要とするなら、読み書きを行う前にポインタを変更する Datagram.reset
を使用します。
data
- 受信したデータグラムを受け取るオブジェクトを渡します。
InterruptedIOException
- タイムアウトあるいは未受信のデータが存在した状態で処理が終了した場合に throw します。
IOException
- それ以外の入出力関連の問題が発生した場合に throw します。Datagram newDatagram(int size) throws IOException
Datagram
オブジェクトを生成します。
size
- 割り当てるバッファのサイズを渡します。
IOException
- 入出力関連の問題が発生した場合に throw します。Datagram newDatagram(int size, String address) throws IOException
Datagram
オブジェクトを生成します。
size
- 割り当てるバッファのサイズを渡します。address
- 宛先アドレスを渡します。
IOException
- 入出力関連の問題が発生した場合に throw します。Datagram newDatagram(byte[] buffer, int size) throws IOException
Datagram
オブジェクトを生成します。
buffer
- データグラムで使用するバッファを渡します。size
- データグラムに割り当てるバッファのサイズを渡します。
IOException
- 入出力関連の問題が発生した場合に throw します。
IllegalArgumentException
- 指定されたサイズが不適切な場合に throw します。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 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |