Foundation 1.1.2

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

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

public interface DatagramConnection
extends Connection

このインタフェースでは、データグラム接続に必要な機能を定義します。接続先を記述するパラメータの文字列に適用される形式は次のとおりです。

 {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 という別のインタフェース型を使用して定義されます。

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

メソッドの概要
 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
 

メソッドの詳細

getMaximumLength

int getMaximumLength()
                     throws IOException
データグラムがとり得る最大の長さを取得します。この長さから、newDatagram メソッドを使用して作成できるデータグラムの最大サイズと、送信または受信可能なデータグラムの最大サイズが求められます。

戻り値:
データグラムの最大長
例外:
IOException - 入出力エラーが発生した場合

getNominalLength

int getNominalLength()
                     throws IOException
データグラムの標準の長さを取得します。標準長は、データバッファーに格納されるデータグラムのサイズを表します。標準長は、データグラムの最大長と同じか、それより短くなります。

戻り値:
データグラムの標準の長さ
例外:
IOException - 入出力エラーが発生した場合

send

void send(Datagram dgram)
          throws IOException
データグラムを送信します。Datagram オブジェクトには、送信するデータ、その長さ、および受信側のアドレスの情報が含まれます。メソッドは、Datagram オブジェクトの現在の offset から length バイトを送信します。lengthoffsetDatagram オブジェクトの内部状態変数です。  

セキュリティーマネージャーが存在する場合は、セキュリティーマネージャーの checkConnect(host, port) メソッドがリモートホストおよびポートへの接続を許可するまで、データグラムを送信できません。

パラメータ:
dgram - データグラム
例外:
IOException - 入出力エラーが発生した場合
InterruptedIOException - タイムアウトまたは割り込みが発生
SecurityException - セキュリティーマネージャーが存在し、その checkConnect メソッドがこの操作を許可しない場合

receive

void receive(Datagram dgram)
             throws IOException
データグラムを受信します。このメソッドの終了時には、Datagram オブジェクトの内部バッファーに、offset 状態変数で指定された位置から、受信データが書き込まれます。このデータは、DataInput インタフェースのメソッドを使用して読み取ることができます。  

このメソッドはデータグラムが受信されるまでブロックされます。Datagram オブジェクトの内部状態変数 length には、受信済みデータグラムの長さが格納されます。受信済みデータが内部バッファーの長さとオフセットの差より長い場合、データは切り詰められます。  

このメソッドでは、Datagram オブジェクトの内部状態変数 read/write は変更されません。読み取りを開始する前に、必要に応じて Datagram.reset メソッドを実行し、ポインタを変更します。  

セキュリティーマネージャーが存在する場合は、セキュリティーマネージャーの checkAccept(host, port) メソッドがリモートホストおよびポートからの接続を許可するまで、データグラムを受信できません。

パラメータ:
dgram - データグラム
例外:
IOException - 入出力エラーが発生した場合
InterruptedIOException - タイムアウトまたは割り込みが発生

newDatagram

Datagram newDatagram(int size)
                     throws IOException
新しいデータグラムオブジェクトを作成します。

パラメータ:
size - データグラムに必要なバッファーのサイズ
戻り値:
新しいデータグラム
例外:
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値である場合、または最大サイズより大きい場合

newDatagram

Datagram newDatagram(int size,
                     String addr)
                     throws IOException
新しいデータグラムオブジェクトを作成します。

パラメータ:
size - データグラムに必要なバッファーのサイズ
addr - 「datagram://{host}:{port}」の形式で表される、データグラムの送信先である入出力アドレス
戻り値:
新しいデータグラム
例外:
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きい場合、またはアドレスパラメータが無効である場合

newDatagram

Datagram newDatagram(byte[] buf,
                     int size)
                     throws IOException
新しいデータグラムオブジェクトを作成します。

パラメータ:
buf - データグラム用のバッファー
size - データグラムに必要なバッファーのサイズ
戻り値:
新しいデータグラム
例外:
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きいか、指定のバッファー長より大きい場合、またはバッファーパラメータが無効である場合

newDatagram

Datagram newDatagram(byte[] buf,
                     int size,
                     String addr)
                     throws IOException
新しいデータグラムオブジェクトを作成します。

パラメータ:
buf - データグラム用のバッファー
size - データグラムに必要なバッファーのサイズ
addr - 「datagram://{host}:{port}」の形式で表される、データグラムの送信先である入出力アドレス
戻り値:
新しいデータグラム
例外:
IOException - 入出力エラーが発生した場合
IllegalArgumentException - サイズが負の値であるか、最大サイズより大きいか、指定のバッファー長より大きい場合、またはアドレスパラメータかバッファーパラメータが無効である場合

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。