|
CDC 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
public interface DatagramConnection
このインタフェースでは、データグラム接続に必要な機能を定義します。接続先を記述するパラメータの文字列に適用される形式は次のとおりです。
{protocol}://[{host}]:[{port}]
データグラム接続は、「クライアント」または「サーバー」のどちらかのモードで確立可能です。「{host}」の部分を省略すると、「サーバー」接続として接続が開始されます (クライアントアプリケーション側から接続を開始するという意味で「サーバー」)。「{host}」の部分を省略しないと、「クライアント」接続として接続が開始されます。 例
データグラムを受信するためのデータグラム接続
datagram://:1234
サーバーに送信するためのデータグラム接続
datagram://123.456.789.12:1234
「サーバーモード」(ホスト名を指定しない) のポート番号は、受信ポートのポート番号です。「クライアントモード」(ホスト名を指定する) のポート番号は、送信先ポートのポート番号です。どちらの場合も、応答先ポートは指定されません。「サーバーモード」では、同じポート番号で送受信が行われます。「クライアントモード」では、応答先ポートは常に動的に割り当てられます。
データグラムオブジェクトの割り当て方法が Java 2 Standard Edition (J2SE) の場合より抽象的である点にも注意してください。たとえば、具象クラス DatagramPacket ではなく、抽象インタフェース Datagram を指定します。これにより、単一のプラットフォームで複数のデータグラムインタフェースを同時にサポートできます。データグラムオブジェクトを割り当てるときは、DatagramConnection オブジェクトの newDatagram メソッドを呼び出す必要があります。結果として得られるオブジェクトは、javax.microedition.io.Datagram という別のインタフェース型を使用して定義されます。
| メソッドの概要 | |
|---|---|
int |
getMaximumLength()
データグラムがとり得る最大の長さを取得します。 |
int |
getNominalLength()
データグラムの標準の長さを取得します。 |
Datagram |
newDatagram(byte[] buf,
int size)
新しいデータグラムオブジェクトを作成します。 |
Datagram |
newDatagram(byte[] buf,
int size,
String addr)
新しいデータグラムオブジェクトを作成します。 |
Datagram |
newDatagram(int size)
新しいデータグラムオブジェクトを作成します。 |
Datagram |
newDatagram(int size,
String addr)
新しいデータグラムオブジェクトを作成します。 |
void |
receive(Datagram dgram)
データグラムを受信します。 |
void |
send(Datagram dgram)
データグラムを送信します。 |
| インタフェース javax.microedition.io.Connection から継承されたメソッド |
|---|
close |
| メソッドの詳細 |
|---|
int getMaximumLength()
throws IOException
newDatagram メソッドを使用して作成できるデータグラムの最大サイズと、送信または受信可能なデータグラムの最大サイズが求められます。
IOException - 入出力エラーが発生した場合
int getNominalLength()
throws IOException
IOException - 入出力エラーが発生した場合
void send(Datagram dgram)
throws IOException
Datagram オブジェクトには、送信するデータ、その長さ、および受信側のアドレスの情報が含まれます。メソッドは、Datagram オブジェクトの現在の offset から length バイトを送信します。length と offset は Datagram オブジェクトの内部状態変数です。
セキュリティーマネージャーが存在する場合は、セキュリティーマネージャーの checkConnect(host, port) メソッドがリモートホストおよびポートへの接続を許可するまで、データグラムを送信できません。
dgram - データグラム
IOException - 入出力エラーが発生した場合
InterruptedIOException - タイムアウトまたは割り込みが発生
SecurityException - セキュリティーマネージャーが存在し、その checkConnect メソッドがこの操作を許可しない場合
void receive(Datagram dgram)
throws IOException
Datagram オブジェクトの内部バッファーに、offset 状態変数で指定された位置から、受信データが書き込まれます。このデータは、DataInput インタフェースのメソッドを使用して読み取ることができます。
このメソッドはデータグラムが受信されるまでブロックされます。Datagram オブジェクトの内部状態変数 length には、受信済みデータグラムの長さが格納されます。受信済みデータが内部バッファーの長さとオフセットの差より長い場合、データは切り詰められます。
このメソッドでは、Datagram オブジェクトの内部状態変数 read/write は変更されません。読み取りを開始する前に、必要に応じて Datagram.reset メソッドを実行し、ポインタを変更します。
セキュリティーマネージャーが存在する場合は、セキュリティーマネージャーの checkAccept(host, port) メソッドがリモートホストおよびポートからの接続を許可するまで、データグラムを受信できません。
dgram - データグラム
IOException - 入出力エラーが発生した場合
InterruptedIOException - タイムアウトまたは割り込みが発生
Datagram newDatagram(int size)
throws IOException
size - データグラムに必要なバッファーのサイズ
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値である場合、または最大サイズより大きい場合
Datagram newDatagram(int size,
String addr)
throws IOException
size - データグラムに必要なバッファーのサイズaddr - 「datagram://{host}:{port}」の形式で表される、データグラムの送信先である入出力アドレス
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きい場合、またはアドレスパラメータが無効である場合
Datagram newDatagram(byte[] buf,
int size)
throws IOException
buf - データグラム用のバッファーsize - データグラムに必要なバッファーのサイズ
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きいか、指定のバッファー長より大きい場合、またはバッファーパラメータが無効である場合
Datagram newDatagram(byte[] buf,
int size,
String addr)
throws IOException
buf - データグラム用のバッファーsize - データグラムに必要なバッファーのサイズaddr - 「datagram://{host}:{port}」の形式で表される、データグラムの送信先である入出力アドレス
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きいか、指定のバッファー長より大きい場合、またはアドレスパラメータかバッファーパラメータが無効である場合
|
CDC 1.1.2 | |||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||