|
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 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |