|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
OBEX でクライアントとして通信を行う場合の接続を定義します。
オペレーションとして PUT と GET をサポートしています。
一回の接続で複数回 sendRequest メソッドを呼び出すことが可能で、
連続して複数のリクエストを送信することができます。
OutputStream または DataOutputStream に出力したデータが
PUT オペレーションの BODY ヘッダの内容としてサーバに送信されます。
GET オペレーションの場合、OutputStream または DataOutputStream に出力したデータは無視されます。
以下に PUT オペレーションを使用する場合のコード例を示します。
また、GET オペレーションに対するレスポンスの BODY ヘッダの内容は
InputStream または DataInputStream から読み出すことができます。
PUT オペレーションに対するレスポンスの場合、
InputStream または DataInputStream は常に空のストリームとなります。
ObexConnection インターフェースで定義されている getContentLength メソッドは
レスポンスの BODY ヘッダ内のコンテンツの長さを返します。
また、以下に GET オペレーションを使用する場合のコード例を示します。
try {
ClientObexConnection coc;
coc = (ClientObexConnection)Connector.open("obex:/irclient");
coc.connect(); // IrDA の場合、この時点でデバイスに通電して
// CONNECT オペレーションを発行します。
while (true) { // 複数のオペレーションを行う場合のループ。
// ループの中で PUT と GET を組み合わせて使用してもよい。
coc.setOperation(ObexConnection.PUT);
coc.setName("foo");
OutputStream out = coc.openOutputStream();
// 書き込み処理
out.close();
coc.sendRequest(); // IrDA の場合、この時点で PUT オペレーションを
// 送信して、レスポンスを受け取ります。
int response = coc.getResponseCode();
}
coc.close(); // IrDA の場合、この時点で DISCONNECT オペレーションを
// 発行して、デバイスをオフにします。
} catch (IOException e) {
}
try {
ClientObexConnection coc;
coc = (ClientObexConnection)Connector.open("obex:/irclient");
coc.connect(); // IrDA の場合、この時点でデバイスに通電して
// CONNECT オペレーションを発行します。
while (true) { // 複数のオペレーションを行う場合のループ。
// ループの中で PUT と GET を組み合わせて使用してもよい。
coc.setOperation(ObexConnection.GET);
coc.setName("bar");
coc.sendRequest(); // IrDA の場合、この時点で GET オペレーションを
// 送信して、レスポンスを受け取ります。
int response = coc.getResponseCode();
InputStream in = coc.openInputStream();
// 読み出し処理
in.close();
}
coc.close(); // IrDA の場合、この時点で DISCONNECT オペレーションを
// 発行して、デバイスをオフにします。
} catch (IOException e) {
}
| メソッドの概要 | |
void |
connect()
接続を確立します。 |
int |
getResponseCode()
レスポンスコードを取得します。 |
void |
sendRequest()
リクエストを送信して、レスポンスの受信を完了するまで待ちます。 |
void |
setOperation(int operation)
オペレーションコードを設定します。 |
| インタフェース com.nttdocomo.io.ObexConnection から継承したメソッド |
getContentLength, getName, getTime, getType, setName, setTime, setType |
| インタフェース javax.microedition.io.InputConnection から継承したメソッド |
openDataInputStream, openInputStream |
| インタフェース javax.microedition.io.Connection から継承したメソッド |
close |
| インタフェース javax.microedition.io.OutputConnection から継承したメソッド |
openDataOutputStream, openOutputStream |
| メソッドの詳細 |
public void connect()
throws java.io.IOException
ConnectionException - サポートしている以上の接続を使おうとした場合に発生します(RESOURCE_BUSY)。ConnectionException - ネイティブのOBEXレイヤでタイムアウトが発生した場合に発生します(TIMEOUT)。ConnectionException - ユーザ操作により通信が中断された場合に発生します(USER_ABORT)。InterruptedIOException - 別スレッドからの中断要求やサスペンドにより通信が中断された場合に発生します。java.io.IOException - I/O エラーが発生した場合に発生します。SecurityException - OBEX の使用が許可されていない場合に発生します。IllegalStateException - [DoJa-2.1] 通話中に呼び出された場合に発生します。public void setOperation(int operation)
operation - オペレーションコードを指定します。IllegalArgumentException - 引数 operation にサポートしていないオペレーションコードが指定された場合に発生します。IllegalArgumentException - WRITEモードでの接続に対してGETオペレーションが指定された場合やREADモードでの接続に対してPUTオペレーションが指定された場合に発生します。
public void sendRequest()
throws java.io.IOException
このメソッドを呼び出すことによって、それより前にこの接続オブジェクトから 取り出した InputStream, DataInputStream, OutputStream, DataOutputStream が無効になります。 次に InputStream, DataInputStream を取り出した時は、 このオペレーションで受信したデータを読み出す入力ストリームを返します。 また、次に OutputStream, DataOutputStream を取り出した時は、 次のオペレーションで送信するデータを書き込む出力ストリームを返します。
java.io.IOException - I/O エラーが発生した場合に発生します。ConnectionException - オペレーションコードがセットされていない場合に発生します(ILLEGAL_STATE)。ConnectionException - ネイティブのOBEXレイヤでタイムアウトが発生した場合に発生します(TIMEOUT)。ConnectionException - ユーザ操作により通信が中断された場合に発生します(USER_ABORT)。ConnectionException - レスポンスコードが 0x20 番台 (generally ok 系の ステータスコード) 以外のコードだった場合に発生します(OBEX_ERROR)。InterruptedIOException - 別スレッドからの中断要求やサスペンドにより通信が中断された場合に発生します。public int getResponseCode()
java.lang.RuntimeException - sendRequest メソッドを呼び出す前に呼び出された場合に発生します。
|
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||