|
Unofficial "CLDC 1.1 + MIDP 2.0" API Reference. (日本語版) |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SocketConnection
このインタフェースはソケット・ストリーム接続を定義します。
ソケットはホストとポート番号を明示する Generic Connection フレームワーク文字列を使用して取得します。
ホストは完全に適切なホスト名か IPv4 アドレスで記述します。
例えば、"socket://host.com:79"
は host.com
システム上のポート番号 79
をターゲットとするソケットを意味します。
RFC1900 は、IP アドレスの再割り当ての際に最もよい結果を得るために IP アドレスよりもホスト名の使用を推奨することに注意してください。
全ての StreamConnection
は、Connection
オブジェクトによる接続に関連した入出力を扱うために InputStream
と OutputStream
を提供します。
これらのインタフェースは、それぞれが close()
メソッドを呼び出してクローズします。
ソケット接続における双方向通信では入力あるいは出力ストリームを閉じると、その接続シャットダウンを行いますが、他方の接続には影響しません。
例えば、InputStream
オブジェクトをクローズしたとしても OutputStream
オブジェクトを使用してデータを送信しつづけることは許容されます。
入力あるいは出力ストリームを一度クローズすると、再度 Connector
クラスの open
メソッドで接続を確立しなければ送受信を再開することはできません。
閉じたストリームを再開させようと試みると IOException
を throw します。
URI は以下で指定する BNF 構文規則に従わなければなりません。
URI がこの構文規則に合致しない場合は IllegalArgumentException
を throw します。
<ソケット接続文字列> | ::= "socket://" <ホストとポート> |
<ホストとポート> | ::= <ホスト> ":" <ポート> |
<ホスト> | ::= ホスト名またはIPアドレス(インバウンド(内部向け)の接続ではホストは省略します - 参照: ServerSocketConnection )。 |
<ポート> | ::= 数字によるポート番号 |
SocketConnection
を使用してループバックするサンプル・プログラムを以下に示します。
SocketConnection sc = (SocketConnection) Connector.open("socket://host.com:79"); sc.setSocketOption(SocketConnection.LINGER, 5); InputStream is = sc.openInputStream(); OutputStream os = sc.openOutputStream(); os.write("\r\n".getBytes()); int ch = 0; while(ch != -1) { ch = is.read(); } is.close(); os.close(); sc.close();
フィールドの概要 | |
---|---|
static byte |
DELAY
書き込みを行う際に小さなバッファを使用したディレイに関する設定を行うことを示すソケット・オプション識別子( =0 )です。 |
static byte |
KEEPALIVE
キープ・アライブ特性(接続を維持しつづける特性)に関する設定を行うことを示すソケット・オプション識別子( =2 )です。 |
static byte |
LINGER
ソケットをクローズする際に未送信のデータがある場合に待つ秒数に関する設定を行うことを示すソケット・オプション識別子( =1 )です。 |
static byte |
RCVBUF
受信バッファのサイズの設定を行うことを示すソケット・オプション識別子( =3 )です。 |
static byte |
SNDBUF
送信バッファのサイズの設定を行うことを示すソケット・オプション識別子( =4 )です。 |
メソッドの概要 | |
---|---|
String |
getAddress()
ソケットと結び付けられているリモート・アドレスを返します。 |
String |
getLocalAddress()
ソケットと結び付けられているローカル・アドレスを返します。 |
int |
getLocalPort()
ソケットと結び付けられているローカル・ポートを返します。 |
int |
getPort()
ソケットと結び付けられているリモート・ポートを返します。 |
int |
getSocketOption(byte option)
この接続に設定されているソケット・オプションを取得します。 |
void |
setSocketOption(byte option,
int value)
この接続にソケット・オプションを設定します。 |
インタフェース javax.microedition.io.InputConnection から継承されたメソッド |
---|
openDataInputStream, openInputStream |
インタフェース javax.microedition.io.OutputConnection から継承されたメソッド |
---|
openDataOutputStream, openOutputStream |
インタフェース javax.microedition.io.Connection から継承されたメソッド |
---|
close |
フィールドの詳細 |
---|
static final byte DELAY
書き込みを行う際に小さなバッファを使用したディレイに関する設定を行うことを示すソケット・オプション識別子(=0
)です。
小さなバッファを用いるネーグル・アルゴリズムを無効にする場合はソケット値に 0
を渡します。
有効にする場合は 0
以外の値を渡します。
setSocketOption(byte, int)
,
定数フィールド値static final byte LINGER
ソケットをクローズする際に未送信のデータがある場合に待つ秒数に関する設定を行うことを示すソケット・オプション識別子(=1
)です。
待たずにクローズする場合はソケット値に 0
を渡します。
setSocketOption(byte, int)
,
定数フィールド値static final byte KEEPALIVE
キープ・アライブ特性(接続を維持しつづける特性)に関する設定を行うことを示すソケット・オプション識別子(=2
)です。
ソケット値に 0
を指定すると特性は無効になります。
0
以外を指定すると特性は有効になります。
setSocketOption(byte, int)
,
定数フィールド値static final byte RCVBUF
受信バッファのサイズの設定を行うことを示すソケット・オプション識別子(=3
)です。
setSocketOption(byte, int)
,
定数フィールド値static final byte SNDBUF
送信バッファのサイズの設定を行うことを示すソケット・オプション識別子(=4
)です。
setSocketOption(byte, int)
,
定数フィールド値メソッドの詳細 |
---|
void setSocketOption(byte option, int value) throws IllegalArgumentException, IOException
この接続にソケット・オプションを設定します。
オプションはアプリケーションがソケット接続を使用する際に意図する用法パターンを、ネットワーク・アクセスを行う低レベル・コードに知らせるために使用します。
バッファ・サイズを割り当てるためにこのメソッドを呼び出すのは、基本的なネットワーク入出力バッファ・サイズを設定するプラットフォームへのヒントです。
getSocketOption(byte)
を呼び出すとシステムがどのような値を使用しているのか知ることができます。
システムは現在のネットワーク情報から利用可能な Maximum Transmission Unit (MTU) と Maximum Segment Size (MSS) データから有効なより良い効率を得るようにバッファ・サイズを調整することがあります。
option
- ソケット・オプション識別子を渡します。value
- 指定したソケット・オプションに設定する値を渡します。
IllegalArgumentException
- 値が有効ではない(例えば負数)かオプション識別子が有効ではない場合に throw します。
IOException
- 接続がクローズされた状態で呼び出された場合に throw します。KEEPALIVE
,
LINGER
,
SNDBUF
,
RCVBUF
,
DELAY
,
getSocketOption(byte)
int getSocketOption(byte option) throws IllegalArgumentException, IOException
この接続に設定されているソケット・オプションを取得します。
指定されたソケット・オプションが無効な場合は -1
を返します。
option
- ソケット・オプション識別子を渡します。
-1
を返します。
IllegalArgumentException
- ソケット・オプション識別子が無効な場合に throw します。
IOException
- 接続がクローズされた状態で呼び出された場合に throw します。KEEPALIVE
,
LINGER
,
SNDBUF
,
RCVBUF
,
DELAY
,
setSocketOption(byte, int)
String getLocalAddress() throws IOException
ソケットと結び付けられているローカル・アドレスを返します。
外部のシステムからこのソケット接続の終了まで接続に使用することができるホスト・アドレス(IP アドレス)です。 IP アドレスはダイナミックに割り当てられる可能性があるため、リモート・アプリケーションは IP アドレスの再割り当てに対しての対策を持っている必要があります。
ローカルのホスト名を利用可能であるなら、System
クラスの getProperty
メソッドでシステム・プロパティ"microedition.hostname"
を読み出すことで取得できます。
IOException
- 接続がクローズしている場合に throw します。ServerSocketConnection
int getLocalPort() throws IOException
ソケットと結び付けられているローカル・ポートを返します。
IOException
- 接続がクローズしている場合に throw します。ServerSocketConnection
String getAddress() throws IOException
ソケットと結び付けられているリモート・アドレスを返します。 アドレスは(利用可能であれば)リモートホスト名か IP アドレスのいずれかになります。
IOException
- 接続がクローズしている場合に throw します。int getPort() throws IOException
ソケットと結び付けられているリモート・ポートを返します。
IOException
- 接続がクローズしている場合に 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 部分は同仕様の範囲外であるため、まったく参考とはしていません。 ※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。 |